[Squeak-ev] nicht druckbare Zeichen hat sich erledigt

"Boris Gärtner" Boris.Gaertner at gmx.net
Mit Dez 14 12:58:15 UTC 2005


> --- Ursprüngliche Nachricht ---
> Von: Enrico Schwass <deckard73 at freenet.de>
> An: Squeak in Germany / Squeak in
> Deutschland	<squeak-ev at lists.squeakfoundation.org>
> Betreff: Re: [Squeak-ev] nicht druckbare Zeichen hat sich erledigt
> Datum: Wed, 14 Dec 2005 11:02:20 +0100
> 
> Aehm ... Ja
> 
> Hab gerade doch noch was gefunden. Character isSeparator.
> Das ist schon beinahe ausreichend. Waere es aber nicht eine gute Idee
> auch isNewLine oder isTab mit in die Klassenbibliothek aufzunehmen?
Zweifellos eine zweckmaessige Idee.
 
> 
> > Aus anderen Sprachen kennt man Sonderbehandlung der ersten 32 ASCII
> > Zeichen, wie Newline, Bell, Tab etc ueber "\n", "\t", "\b".
> > 
> > Wenn ich auf Newline, Linefeed oder Carriagereturn testen will kann ich
> > das mit 10 und 13 loesen. Es gibt aber sicher vordefinierte
> > "Konstanten", oder? 
Ja, die gibt es. Sie stehen im pool dictionary  TextConstants.
Mit  "TextConstants inspect"  kann man sich einen Überblick 
verschaffen, welche Namen definiert sind.

> > Wie wende ich das an. Kann jemand mal 2 Zeilen Code
> > posten? Ich habe im Netz nichts dazu gefunden.
> > 
Damit man die symbolischen Namen in einer Methode verwenden kann,
muss man  TextConstants   in der Klassendefinition als
pool dictionary angeben:

 Object subclass: #MyDemoClass
   instanceVariableNames: ''
   classVariableNames: ''
   poolDictionaries: 'TextConstants'
   category: 'Demo'


Dann sind Ausdrücke wie

   character = Tab.

   string at: 1 put: Space.


compilierbar.

Leider ist TextConstants ein bißchen unvollständig,
aber das kann man ändern. TextConstants ist ein normales
Dictionary, man kann also z.B. schreiben:

TextConstants at: #Lf put: Character lf

Gruss
Boris