Sven I do not see the binary stream. Is it ZnCharacterReadStream? Stef
On Mon, Oct 2, 2017 at 1:22 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote: > Hi, > >> On 2 Oct 2017, at 13:07, Dirk Olmes <d...@xanthippe.ping.de> wrote: >> >> Hi, >> >> I'm trying to get started with Pharo doing something really simple - at >> least that's what I thought ... I'm trying to read a text file line by line. >> >> If I use File named: '/tmp/linex.txt' readStream nextLine I'll get a >> debugger telling me that BinaryFileStream does not understand nextLine. >> >> Now I've tried my best to find a stream that may be reading plain text >> lines but to no avail ... >> >> Help! >> >> -dirk > > $ cat > /tmp/lines.txt > one > two > three > > (FileLocator temp / 'lines.txt') contents lines. > > '/tmp/lines.txt' asFileReference contents lines. > > '/tmp/lines.txt' asFileReference readStreamDo: [ :in | > Array streamContents: [ :out | > [ in atEnd ] whileFalse: [ out nextPut: in nextLine ] ] ]. > > (File named: '/tmp/lines.txt') readStreamDo: [ :in | > | characterStream | > characterStream := ZnCharacterReadStream on: in. > Array streamContents: [ :out | > [ characterStream atEnd ] whileFalse: [ out nextPut: characterStream > nextLine ] ] ]. > > They all return #('one' 'two' 'three'). > > In the last, more complex example, you first get a binary stream (and a > 'line' is a character based concept), so wrapping the binary stream in a > character read stream (which does know about lines) solves the problem. > > HTH, > > Sven