[squeak-dev] Xtreams question - OC of chars to String

Frank Shearar frank.shearar at gmail.com
Sat Dec 29 20:46:31 UTC 2012


On 29 December 2012 17:30, Chris Cunnington
<smalltalktelevision at gmail.com> wrote:
> I have a question about converting an OrderedCollection full of chars into a
> string. [1]
>
> I would have thought there was a method like #asString that could be sent to
> an OrderedCollection to produce a string. I find myself having to do the
> process in three steps: 1) #reading the OC; 2) creating an empty string; and
> then, 3) iterating over every char to put it into the String.
>
> I think I'm missing a simpler way. Especially with Xtreams. Shouldn't I just
> use a filter, change the #contentSpecies, or something?

You're getting Characters, I guess, because you're reading one element
at a time [1]. There's nothing stopping you reading more than that:

('abc' reading read: 3) = 'abc'.
('abc reading rest) = 'abc'.

frank

[1] It's worth bearing in mind that Xtreams operate over streams of
arbitrary objects, not just characters.

> Chris
>
>
> [1]
>
> startTag: data
>     <action: 'element'>
>     |tagdata str |
>     tagdata := data second first reading.
>     str := (String new: 20) writing.
>     tagdata do: [:each| str put: each].
>     ^'html ' , (data first second first asString) , $: , $' , (str close;
> terminal) , $'
>
>


More information about the Squeak-dev mailing list