Zur Druckansicht wechseln Visit the English version of this page

www.jb-electronics.de » Programmieren » Stringmanipulation

Stringmanipulation

Zeichenketten (Strings) sind ein wesentlicher Bestandteil des Programmierens. Wann immer Zeichen, Sätze, Texte und sonstwie nicht-numerische Daten verwendet werden, finden sie Anwendung. Da scheint es nicht verwunderlich, dass QuickBASIC eine ganze Reihe von Befehlen zur Stringmanipulation bereitstellt. Die wichtigsten seien hier einmal vorgestellt:

1. LEN(Ausruck AS STRING)

Diese Funktion liefert die Länge einer Zeichenkette zurück. Ein praktisches Anwendungsbeispiel ist zum Beispiel das Warten auf einen beliebigen Tastendruck:

DO: LOOP UNTIL LEN(INKEY$)

2. RTRIM$(Ausdruck AS STRING) und LTRIM$(Ausdruck AS STRING)

Diese beiden Funktionen schneiden überflüssige Leerzeichen ab. LTRIM$() schneidet die vorangehenden Leerzeichen ab, RTRIM$() die nachfolgenden. Diese Funktionen finden Anwendung bei der Augabe von Zahlen. Positive Zahlen besitzen ein vorangehendes Leerzeichen, um Platz für das Minuszeichen zu halten, das angezeigt wird falls die zahl negativ werden sollte:

DIM Zahl AS INTEGER
INPUT Zahl
PRINT "Die Zahl ohne LTRIM$(): "; Zahl
PRINT "Die Zahl mit LTRIM$(): "; LTRIM$(STR$(Zahl))

3. STR$(Zahl AS INTEGER, SINGLE, DOUBLE, LONG) und VAL(Ausdruck AS STRING)

Die Funktion STR$() findet Anwendung wenn es darum geht, eine beliebige Zahl in eine Zeichenkette umzuwandeln. Das Gegenstück dazu ist die VAL()-Funktion, die eine Zeichenkette in eine Zahl umwandelt. Sollte die Zeichenkette keine Zahl sein, gibt die Funktion 0 zurück. Das folgende Beispiel verdeutlicht die Funktionen:

DIM Zahl AS INTEGER
DIM Ausdruck AS STRING

INPUT Zahl
Ausdruck = STR$(Zahl)
PRINT "Die Zeichenkette: "; Ausdruck

INPUT Ausdruck
Zahl = VAL(Ausdruck)
PRINT "Die Zahl: "; Zahl

4. LCASE$(Ausdruck AS STRING), UCASE$(Ausdruck AS STRING)

Diese Funktionen liefern den Ausdruck in Groß-/Kleinschreibung zurück. Dabei steht UCASE für UpperCase (d.h. Großbuchstaben) und LCASE für LowerCase (d.h. Kleinbuchstaben). Hier ein Beispiel:

DIM AS STRING Ausdruck
LINE INPUT Ausdruck
PRINT "Der Ausdruck in Großbuchstaben: "; UCASE$(Ausdruck)
PRINT "Der Ausdruck in Kleinbuchstaben: "; LCASE$(Ausdruck)

5. RIGHT$(Ausdruck AS STRING, Anzahl), LEFT$(Ausdruck AS STRING, Anzahl)

Diese beiden Funktionen liefern Teile einer Zeichenkette zurück. Bei RIGHT$() sind dies die angegebene Anzahl von Zeichen vom Ausdrucksende betrachtet, bei LEFT$() sind dies die angegebene Anzahl von Zeichen vom Ausdruckanfang betrachtet. Hier ein Beispiel:

DIM Ausdruck AS STRING
DO
  PRINT "Geben Sie einen Ausdruck mit 4 Zeichen ein: ";
  LINE INPUT Ausdruck
LOOP UNTIL LEN(Ausdruck) = 4
PRINT "Die ersten zwei Zeichen: "; LEFT$(Ausdruck, 2)
PRINT "Die letzten zwei Zeichen: "; RIGHT$(Ausdruck, 2)

6. MID$(Ausdruck AS INTEGER, Position[, Länge])

Diese Funktion dient dazu, eine beliebige Anzahl an Buchstaben aus einer Zeichenkette an beliebiger Position auszuschneiden. Dabei ist Länge ein optionaler Parameter. Die MID$() Funktion kann man zum Beispiel verwenden, um den Tag im Datum zu ermitteln:

DIM Tag AS STRING
Tag = MID$(DATE$, 4, 2)
PRINT "Heute ist der "; Tag; "."

7. ASC(Zeichen AS STRING) und CHR$(ASCIIWert)

Ebenfalls wichtige Funktionen sind ASC() und CHR$(). Mit ASC() kann der ASCII-Code eines Zeichens ermittelt werden. CHR$() ist - wenn man so will - die Umkehrfunktion zu ASC() und liefert das Zeichen mit dem angegebenen ASCII-Wert zurück. Die CHR$()-Funktion wird vor allem bei Tastaturabfragen verwendet, bei denen auch Steuertasten zugelassen sind. Hier ein Beispiel, das auf den Druck der Escape-Taste (ASCII-Code 27) wartet. Dazu zwei Varianten, bei denen einmal die CHR$()-Funktion und das andere Mal die ASC()-Funktion verwendet werden:

' Variante 1
DO
LOOP UNTIL INKEY$ = CHR$(27)

' Variante 2
DO
LOOP UNTIL ASC(INKEY$) = 27

Diese zweite Variante ist allerdings fehleranfällig, da ASC() bei einem Leer-String ("") das Programm abstürzen lässt.

8. INSTR([StartPosition, ]Ausdruck1 AS STRING, Ausdruck2 AS STRING)

Diese Funktion passt eigentlich nur im weitesten Sinne in die Rubrik Stringmanipulation, aber sie sei hier dennoch mal vorgestellt. Mit der Funktion INSTR() kann man überprüfen, ob Ausdruck2 im Ausdruck1 enthalten ist. Bei Bedarf kann man auch noch mit dem optionalen Parameter StartPosition angeben, ab welcher Stelle die Zeichenkette Ausdruck1 durchsucht werden soll. Sollte der gewünschte Ausdruck gefunden werden, liefert INSTR() die Position im Ausdruck zurück, an der der zu suchende Ausdruck gefunden wurde. Hier ein Beispiel:

DIM UserName AS STRING
LINE INPUT UserName
IF INSTR(LCASE$(UserName), "hans") THEN PRINT "Ach, du bist ja auch ein Hans!"

Das sind natürlich nicht alle Befehle zum Thema Stringmanipulation, aber die wichtigsten sind dabei.

Nach oben

show print layout Die deutsche Version der Seite besuchen

www.jb-electronics.de » Programming » Manipulation of Strings

Manipulation of Strings

My apologies...

There is no English translation of this page available yet. It will take some more time for me to translate the whole website.

If you have a particular interest in this page getting translated as fast as possible, please contact me; I will see what I can do. Please click here for the German version.

To the top