[Q] Ask on String manipulation

glenn krasner at objectshare.com
Tue Apr 28 17:57:39 UTC 1998


At 12:41 PM 4/28/98 +0900, Chun, Sung Jin wrote:
>I want to make string like in ObjC;
>[ str concatSTR: 'Hello' ];
>But in Smalltalk I cannot find it.
>And also I want printf like feature in error: like this;
>self error: 'Class %s', [ self name ]
>Can anyone teach me how I can do this ?

We extended VisualWorks some time back to handle this kind of string "macro
expansion", including arguments, by adding an #expandMacrosWith:*  family
of messages and creating a class (StringParameterSubstitution) to do the
work. 

For example:
	'hello, <1s>' expandMacrosWith: 'Chun'
returns
	'hello, Chun'
or
	'<1?Guten Tag:Hello>, <2s>' 
		expandMacrosWith: isGerman 
		with: 'Chun'
returns 'Guten Tag, Chun' or 'Hello, Chun', depending on the value of the
boolean isGerman.

As you suggest, this is used a lot in error handlers and other places,
especially in the face of internationalization.

I don't think it's a huge project to create this functionality in Squeak,
and while you can't steal the VW code, I think we'd benefit from having
compatible syntax, so I'd encourage you or some other Squeaker to check out
the VW description.

glenn





More information about the Squeak-dev mailing list