No Problem Ayerst :) Just kidding, people call me Barry all the time, even though my first name is Paul. That's the curse of having 2 first names I guess.
On Wed, Jan 7, 2009 at 8:17 AM, Tom Ayerst <tom.aye...@gmail.com> wrote: > Thanks Barry, I now see what I did. > > I tried doseq early but it didn't print anything. I had: > (with-open [r (reader "doc.txt")] > (doseq [line (line-seq r)] println line)) > > so I wasn't evaluating the println. > > Cheers > > Tom > > 2009/1/7 Paul Barry <pauljbar...@gmail.com> > > Here's a little cleaner version using doseq: >> (use 'clojure.contrib.duck-streams) >> >> (with-open [r (reader "doc.txt")] >> (doseq [line (line-seq r)] (println line))) >> >> >> On Wed, Jan 7, 2009 at 7:27 AM, Tom Ayerst <tom.aye...@gmail.com> wrote: >> >>> Thanks Brian. >>> >>> I finally nailed it with: >>> >>> (use '[clojure.contrib.duck-streams :only (reader)]) >>> >>> (with-open [r (reader "doc.txt")] >>> (dorun >>> (for [line (line-seq r)] (do (println line))))) >>> >>> Cheers >>> >>> Tom >>> >>> 2009/1/6 Brian Doyle <brianpdo...@gmail.com> >>> >>> >>>> On Tue, Jan 6, 2009 at 4:47 PM, Tom Ayerst <tom.aye...@gmail.com>wrote: >>>> >>>>> Its not the println, nor getting a reader (duckstreams is fine, I can >>>>> do that). Its the converting it to a seq and stepping through it printing >>>>> each element (which should be a line). Its the loopy, steppy bit, just >>>>> for a >>>>> side effect; that I am messing up. >>>>> >>>>> Cheers >>>>> >>>>> Tom >>>> >>>> >>>> I've done this type of thing and it worked great for me. >>>> >>>> (with-open [r (clojure.contrib.duck-streams/reader >>>> "filename.txt")] >>>> (doseq [line (line-seq r)] >>>> ; do stuff with the line here >>>> )) >>>> >>>> Basically you'll want to use the line-seq function. Hopefully that >>>> helps. >>>> >>>> >>>>> 2009/1/6 Mark Volkmann <r.mark.volkm...@gmail.com> >>>>> >>>>> >>>>>> On Tue, Jan 6, 2009 at 5:26 PM, Tom Ayerst <tom.aye...@gmail.com> >>>>>> wrote: >>>>>> > Hi, >>>>>> > >>>>>> > How do I read and print a text file? I can read it, its the >>>>>> printing that >>>>>> > is the problem, I feel it should be obvious but I keep tripping >>>>>> myself up. >>>>>> > (The context is I need to extract data line by line, translate the >>>>>> line >>>>>> > format and save it for a legacy app) >>>>>> >>>>>> Do you just need to print to stdout? >>>>>> The println function does that. It puts a space between the output of >>>>>> each of its arguments. If you don't want that you can use the str >>>>>> function to concatenate a bunch of string values together. >>>>>> If you need something fancier, don't forget that you can access >>>>>> everything in java.io from Clojure. >>>>>> >>>>>> -- >>>>>> R. Mark Volkmann >>>>>> Object Computing, Inc. >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---