On 29 December 2012 17:30, Chris Cunnington smalltalktelevision@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) , $'