Hernán,

On 01 Aug 2012, at 20:50, Hernán Morales Durand <[email protected]> 
wrote:

> 
> 2012/8/1 Sven Van Caekenberghe <[email protected]>
> Paul,
> 
> On 31 Jul 2012, at 18:25, Paul DeBruicker <[email protected]> wrote:
> 
> > Is there an easy/standard way to open an ascii file and iterate through it 
> > line by line?
> >
> >
> > I want to put several files contents into their own OrderedCollections and 
> > then do awful things to them. The files are ~500MB each
> 
> This uses code that is already in Pharo:
> 
> '/tmp/foo.txt' asFileReference readStreamDo: [ :readStream |
>         | lineReader |
>         lineReader := ZnLineReader on: readStream.
>         Array streamContents: [ :output |
>                 | line |
>                 [ (line := lineReader nextLine) isEmpty ]
>                         whileFalse: [ output nextPut: line ] ] ]
> 
> Works with any line end convention. Check the class comment of ZnLineReader.
> 
> 
> No, it doesn't work in latest Pharo 1.4 (14557)
> MessageNotUnderstood: FileSystemReadStream>>isBinary
> 
> Cheers,
> 
> Hernán

I did try the code snippet on Pharo 2.0 before posting it, it worked.

I just tried the following on Pharo 1.4, and it works as well.

FileStream fileNamed: '/tmp/foo.txt' do: [ :readStream |
        | lineReader |
        lineReader := ZnLineReader on: readStream.
        Array streamContents: [ :output |
                | line |
                [ (line := lineReader nextLine) isEmpty ] 
                        whileFalse: [ output nextPut: line ] ] ]

Maybe you tried using some FileSystem port on 1.4 that is not as complete as 
the code that is by default in 2.0 ?
But ZnLineReader is independent of that, it has been part of Zn since years, in 
Pharo 1.3 and up.

Sven

Reply via email to