Yes this is why we should continue to clean and remove cruft. Now I
remember that guille did that for File.

Stef

On Mon, Oct 2, 2017 at 3:20 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote:
> If you do
>
>   (File named: '/tmp/lines.txt') readStream[Do:]
>
> you seem to get a binary stream (this is the new implementation I guess), 
> when you go via FileReference you get a character stream (but that are old 
> ones).
>
> I know, very confusing. We're always in the midst of transitions.
>
>> On 2 Oct 2017, at 15:17, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
>>
>> 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
>>
>
>

Reply via email to