Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:autoit:stringfunktionen:start

Stringfunktionen

Wir haben schon gelernt, dass man Strings (Zeichenketten) mit dem Stringverkettungsoperator & zusammenhängen kann. In den folgenden Beispielen sehen wir uns an, wie man Strings zerlegen kann.

StringLeft()

Mit der Funktion StringLeft() kann man sich Zeichen vom Beginn einen Strings, also vom linken Ende, holen. Als Parameter benötigt die Funktion logischerweise den String, von dem man die Zeichen haben möchte, und als zweiten Parameter die Anzahl der Zeichen, die man haben möchte. In folgendem Beispiel holt man sich einma die ersten 3 Zeichen, und einmal die ersten 6 Zeichen:

$Name="Max Mustermann"
ConsoleWrite( $Name )
ConsoleWrite( @CRLF )
ConsoleWrite( StringLeft( $Name, 3 ) )
ConsoleWrite( @CRLF )
ConsoleWrite( StringLeft( $Name, 6 ) )
Max Mustermann
Max
Max Mu

StringRight()

Man kann sich auch Zeichen vom Ende des Strings, also vom rechten Ende, holen. Das macht die Funktion StringRight():

ConsoleWrite( StringRight( $Name, 4 ) )
mann

StringMid()

Möchte man einen Teilstring aus der Mitte, kann man die Funktion StringMid() dafür verwenden. Im Beispiel: ab dem 5. Zeichen einen Teilstring der Länge 6.

ConsoleWrite( StringMid( $Name, 5, 6 ) )
Muster

StringLen()

Weil wir gerade über Länge von Strings sprechen:

ConsoleWrite( StringLen( $Name ) )
14

Dann üben wir gleich nocheinmal das Zusammensetzen von Strings, indem wir statt eines lapidaren 14 eine schöne aussagekäftige Meldung ausgeben lassen:

ConsoleWrite( "Anzahl der Zeichen im String '" )
ConsoleWrite( $Name )
ConsoleWrite( "': " )
ConsoleWrite( StringLen( $Name) )
ConsoleWrite( @CRLF )
Anzahl der Zeichen im String 'Max Mustermann': 14

Wenn man nicht so viele ConsoleWrites schreiben will, kann man die Ausgabe auch mit & zu einem einzigen String zusammenhängen und mit einem einzigen ConsoleWrite() ausgeben lassen:

$Name="Max Mustermann"
ConsoleWrite( "Anzahl der Zeichen im String '" & $Name & "': " & StringLen( $Name) & @CRLF)

StringInStr()

Mit der Funktion StringInStr() kann man einen Teilstring in einem String suchen lassen, und erhält die Position zurück. Im Beispiel soll die Position des Leerzeichens im String "Max Mustermann" ermittelt werden. Sie können nachzählen, oder die Positionsnummern anzeigen lassen, um das deutlicher zu machen.

ConsoleWrite ( "123456789012345" & @CRLF ) ; damit wir optisch die Position feststellen können
$Name = "Max Mustermann"
ConsoleWrite ($Name  & @CRLF )
ConsoleWrite( "Position des Leerzeichens: " )
ConsoleWrite( StringInStr( $Name, " " ) )
ConsoleWrite( @CRLF)
123456789012345
Max Mustermann
Position des Leerzeichens: 4

Übungsbeispiele

Aufgabe

Wir haben gelernt, dass wir uns mit der Funktion StringLeft() die ersten Zeichen eines Strings holen können. Die nächste Aufgabe ist, eine Schleife zu schreiben, die 1.) das erste Zeichen, 2.) die ersten beiden Zeichen, 3.) die ersten drei Zeichen … eines gegebenen Strings ausgibt.

Max Mustermann
1.) M
2.) Ma
3.) Max
4.) Max 
5.) Max M
6.) Max Mu
7.) Max Mus
8.) Max Must
9.) Max Muste
10.) Max Muster
11.) Max Musterm
12.) Max Musterma
13.) Max Musterman
14.) Max Mustermann

Wahrscheinlich haben Sie für einen ersten Versuch die Anzahl der Zeichen in Max Mustermann abgezählt und eine For $i=1 to 14 umgesetzt. Wenn Sie nun andere Namen verwenden, werden Sie feststellen, dass die Schleife entweder zu oft oder zuwenig oft durchlaufen wird. Wäre es nicht elegant, wenn Sie das nicht selbst abzählen müssten, sondern wenn das Programm das erledigen könnte? Kann es auch, wir haben dazu die Funktion StringLen() kennen gelernt.

Aufgabe

Ein String soll in die einzelnen Zeichen zerlegt werden. Lassen Sie jedes Zeichen in einer neuen Zeile ausgeben. Das sieht dann folgendermaßen aus:

M
a
x
 
M
u
s
t
e
r
m
a
n
n

Aufgabe

Von einem gegebenen String soll 1.) das erste Zeichen und ein Leerzeichen, 2.) das zweite Zeichen und ein Leerzeichen, 3.) das dritte Zeichen und ein Leerzeichen, … ausgegeben werden. Das sieht dann folgendermaßen aus:

Max Mustermann
M a x   M u s t e r m a n n 

Aufgabe

Zerlegen Sie einen Namen (z.B. "Max Mustermann") in Vorname und Nachname, wobei das Leerzeichen das Trennzeichen ist.
Sie haben schon gelernt, dass man mit der Funktion StringInStr() die Position des Leerzeichens ermitteln kann. Im Beispiel sollte das 4 ergeben. Den Vornamen können Sie erhalten, wenn Sie mit StringLeft() die ersten 3 Zeichen zurückgeben lassen. Die Länge 3 können Sie errechnen lassen, indem Sie von der Position des Leerzeichens 1 subtrahieren.
Den Nachnamen können Sie erhalten, wenn Sie mit StringRight() die letzen 10 Zeichen zurückgeben lassen. Die Länge 10 können Sie errechnen lassen, indem Sie von der Gesamtlänge des Strings (14) die Position des Leerzeichens (4) subtrahieren.

12345678901234
Max Mustermann
Vorname : Max
Nachname: Mustermann

Aufgabe

Zerlegen Sie eine E-Mail-Adresse (z.B. "max.mustermann@mail.com") anhand des @.

12345678901234567890123
max.mustermann@mail.com
max.mustermann
mail.com

Aufgabe

Führende Nullen
Die Zahlen von 1 bis 12 sollen mit führender Null ausgegeben werden, sodass sie schön untereinander stehen, z.B.:

...
007
008
009
010
011
012

Wie kann man das erreichen?
Nehmen Sie einfach einen String mit Nullen, hängen Sie die Zahl daran, und nehmen Sie vom Ergebnis die rechtesten 2 (oder 3 ) Zeichen.

StringRight( "000" & $i, 3)
programmieren/autoit/stringfunktionen/start.txt · Zuletzt geändert: 2015-09-28 19:23 von Robert Wiedermann

Seiten-Werkzeuge

Robert Wiedermann, Institut für Statistik (STAT), Universität für Bodenkultur Wien