Moin
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? Wie wende ich das an. Kann jemand mal 2 Zeilen Code posten? Ich habe im Netz nichts dazu gefunden.
Danke Enno
PS: Wird das TextFiles-Package noch gepflegt?
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?
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? Wie wende ich das an. Kann jemand mal 2 Zeilen Code posten? Ich habe im Netz nichts dazu gefunden.
Danke Enno
PS: Wird das TextFiles-Package noch gepflegt?
--- Ursprüngliche Nachricht --- Von: Enrico Schwass deckard73@freenet.de An: Squeak in Germany / Squeak in Deutschland squeak-ev@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
Moin
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.
Ah. Gut zu wissen
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
Das hilft mir weiter.
Danke Enno
PS: Das man MessageNotUnderstood dictionaryMenu ausloest, wenn man das Kontextmenu zu einem TextConstants-Symbol im Inspector aufruft ist gewollt?
Naja, "isSeparator" deckt mehrere Zeichen ab. Statt isTab kann man gut "= Character tab" verwenden, oder? Ebenso für "Character cr" und "Character lf".
- Bert -
Am 14.12.2005 um 11:02 schrieb Enrico Schwass:
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?
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? Wie wende ich das an. Kann jemand mal 2 Zeilen Code posten? Ich habe im Netz nichts dazu gefunden.
Danke Enno
PS: Wird das TextFiles-Package noch gepflegt?
squeak-ev@lists.squeakfoundation.org