[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