[BUG] ([closed] non-issue)

radoslav hodnicak rh at 4096.sk
Thu Jul 14 21:38:15 UTC 2005


Well this seems to be a property of write streams, they pretend to be 
empty and if you #nextPut: it will overwrite your old data (if you use 
#with: to create the stream it will append data). This allows 
you to do things like

string := 'Abcdefg' copy.
stream := WriteStream on: string.
stream nextPutAll: '123'.
string -> '123defg'

I have no idea where this would be useful, especially since stream will 
expand the collection in steps as you add new items so you end up with 
data + empty cells. Streams in VisualWorks behave the same, so it's not 
just some Squeak oddity

rado

On Wed, 13 Jul 2005, Larry Trutter wrote:

> This report is being closed because I could not successfully replicate this 
> issue without more information. 
> You are welcome to resubmit the issue to the Mantis database with any more 
> information that you can to aid us in understanding and replicating the 
> problem at http://bugs.impara.de/ .
>
> thank you for your time,
> Larry Trutter
>
> Stéphane Ducasse wrote:
>
>> hi all
>> 
>> can someone help me here?
>> 
>> I did the following
>> |stream |
>> stream := (MultiByteFileStream fileNamed: 'BD4TabsDelimited.txt').
>> stream converter: MacRomanTextConverter new.
>> self assert: (stream upTo: Character cr) =  '        Achille Talon     Greg 
>> Pas de pitié pour Achille talon    13    1976     Dargaud    "sur la 
>> couverture ""une histoire du journal  tintin"""            '
>> 
>> This is ok!
>> 
>> 
>> 
>> Now I'm trying to use MultiByteBinaryOrTextStream as follow
>> 
>> |stream |
>> stream := MultiByteBinaryOrTextStream on: self 
>> completeWithTabbingLinesWithAccents encoding: 'mac-roman'.
>> self assert: (stream upTo:  Character cr) = ' '
>> 
>> when I do
>> stream contents I got '' while there is a collection...
>> 
>> It seems that the stream once instantiated is at the end. (readLimit  is 0 
>> when the instance is created)
>> 
>> How can I say to the stream to be at the start. I tried reset, 
>> resetAtStart without success
>> when in an inspector I copy the writeLimit to the readLimit then  upTo: 
>> works perfectly.
>> 
>> Is it a bug?
>> 
>> I added
>> 
>> MultiByteBinaryOrTextStream>>atStart
>> 
>>     readLimit := writeLimit.
>>     position := 0.
>> 
>> and it works but this seems to me quite strange that I cannot open a 
>> MultiByteBinaryOrTextStream
>> in read and be at the beginning of the stream
>> 
>> Stef
>> 
>> 
>> 
>> 
>> 
>> 
>
>


More information about the Squeak-dev mailing list