Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Einfache String Operationen

Geschrieben von: Christian Koller
Kategorie: ASP Grundlagen

This printed page brought to you by AlphaSierraPapa

Operationen mit Textvariablen, die Strings (engl. für Zeichenketten) enthalten, gibt es viele. Wenn man die Wichtigsten kennt, so kann man sich das Leben als ASP-Programmierer ganz erheblich erleichtern. Hat man zum Beispiel einen physikalischen Pfad zu einer Datei, wie C:\Inetpub\wwwroot\images\logo.jpg, so kann man den Pfad zum Verzeichnis, in dem die Datei liegt, durch String-Operationen mit den VBScript Funktion InstrRev und Left leicht herausfinden. Auch für die Validierung von HTML-Formularen leisten String-Funktionen hervorragende Dienste.

In VBScript kann ein String theoretisch bis zu 2 Millionen Zeichen lang sein.

Anführungszeichen in Strings

Ein String wird in VBScript durch Anführungszeichen begrenzt:

strErgebnis = "Dies ist ein Text"

Ergebnis: Dies ist ein Text

Um einen String zum Browser zu schreiben, benutzt man in ASP den Befehl Response.Write:

Response.Write "Dies ist ein Text<BR>in zwei Zeilen."
Response.Write "Weiterer Text..."

Ergebnis im Browser:
Dies ist ein Text
in zwei Zeilen.Weiterer Text...

Ein Response.Write allein bewirkt keine Zeilenschaltung, sondern schreibt einfach den Text als HTML-Code zum Browser. Will man nun HTML Tags zum Browser schicken, so fügt man diese einfach in den String ein:

Response.Write "Dies ist <B><I>formatierter Text</I></B>.<BR>"

Ergebnis im Browser:
Dies ist ein formatierter Text.

Will man in einem String ein Anführungzeichen benutzen, so muss man das Anführungszeichen im String verdoppeln, damit in der Textvariable ein Anführungzeichen gespeichert wird:

Response.Write "Dies sind sogenannte ""Anführungzeichen""!<BR>"
strRed = "Eine <FONT COLOR=""Red"">rote Schrift</FONT>!"
Response.Write strRed

Ergebnis im Browser:
Dies sind sogenannte "Anführungzeichen"!
Eine rote Schrift!

Wenn ein Anführungzeichen an das Ende oder den Anfang einer Zeichenkette gestellt wird, so ergeben sich dadurch 3 Anführungzeichen nebeneinander:

strAnfZeich = "Anführungzeichen"
strErgebnis = "Und schon wieder """ & strAnfZeich & """..."

Ergebnis: Und schon wieder "Anführungzeichen"...

Text Operatoren

Der Verknüpfungsoperator (&) wird wie folgt benutzt:

strErgebnis = strA & strB
strErgebnis = "Ein Text," & " und noch ein Text"

Um nun in einem String auf einfache Weise eine Zeilenschaltung oder eine Tabulatorschaltung einzufügen, benutzt man sogenannte String-Konstanten.

Wichtige String-Konstanten in VBScript

Um Beispielsweise einen String mit 2 Zeilenschaltungen zu erzeugen, kann man einen VBScript Befehl wie folgt benutzen:

strErgebnis = "Eine Zeile" & vbCrLf & "zweite Zeile" & _
	vbCrLf & "letzte Zeile"

Ergebnis: 
Eine Zeile
zweite Zeile
letzte Zeile

Anmerkung: Wie Sie sicherlich wissen, benutzt man den <BR> Tag in HTML um eine Zeilenschaltung im Browser zu erreichen. Wenn Sie einen String an den Browser schicken, der ein vbCrLf enthält, so bewirkt dies nur eine Zeilenschaltung im Sourcecode, aber nicht im dargestellten Text.

Einfache String Funktionen

Trim, LTrim und RTrim

Um in einem String alle Leerzeichen am Anfang oder am Ende des Strings zu entfernen benutzt man die VBScript Funktionen Trim, LTrim und RTrim. Dies ist zum Beispiel nützlich um Ergebnisse aus HTML-Formularen zu formatieren, da ein User aus Versehen Leerzeichen vor oder nach einer Eingabe eingetippt haben könnte.

Wenn man einen String in einer Datenbank speichert, so wird man für gewöhnlich auch alle Leerzeichen rechts und links des eigentlichen Wertes entfernen.

Die Funktion Trim entfernt die Leerzeichen links und rechts des eigentlichen Wertes:

strText = "   Ein Text    "
Response.Write "*" & Trim(strText) & "*"

Ergebnis im Browser: *Ein Text*

Hingegen entfernen die Funktionen LTrim und RTrim nur die Leerzeichen links (LTrim) beziehungsweise rechts (RTrim) der eigentlichen Zeichenkette:

strText = "   Ein Text    "
Response.Write "LTrim: *" & LTrim(strText) & "*<BR>"
Response.Write "RTrim: *" & RTrim(strText) & "*"

Ergebnis im Browser:
LTrim: *Ein Text    *
RTrim: *   Ein Text*

Len Funktion

Wenn man wissen möchte, wie viele Zeichen in einem String vorhanden sind, so benutzt man die VBScript Funktion Len.

strText = "Eine lange Zeichenkette"
Response.Write "Anzahl Zeichen in strText = " & Len(strText)

Ergebnis im Browser:
Anzahl Zeichen in strText = 23

Anmerkung: Ein vbCrLf zählt als zwei Zeichen, da es ja aus Chr(10) und Chr(13) besteht.

Left, Right und Mid

Wenn man nur einen Teil einer Zeichenkette benötigt, so benutzt man die Funktionen Left, Right und Mid, um den gewünschten Teil der Zeichenkette zu erhalten.

Die Funktion Left liefert den linken Teil einer Zeichenkette, ihr Syntax ist wie folgt:

Syntax:
String = Left(String,Länge)

Beispiel:
strLinks = Left("Dies ist ein Text!", 6)
Response.Write strLinks

Ergebnis: 
Dies i

Im Unterschied zu Left gibt die Funktion Right den rechten Teil einer Zeichenkette zurück:

Syntax:
String = Right(String,Länge)

Beispiel:
strRechts = Right("Dies ist ein Text!", 7)
Response.Write strRechts

Ergebnis: 
n Text!

Die Funktion Mid dient dazu, um eine Zeichenkette zu bekommen, die mit einer bestimmten Länge an einer definierten Stelle des Strings liegt.

Syntax:
String = Mid(String,Start,Länge)
oder
String = Mid(String,Start)

Beispiel:
strText = "Ein Beispieltext"
Response.Write Mid(strText, 5) & "<BR>"
Response.Write Mid(strText, 5, 3)

Ergebnis: 
Beispiel
Bei

Die Funktion Mid liefert als eine Zeichenkette einer definierten Länge, die an der Startposition des Strings liegt. Wenn man keine Länge angibt, so wird der gesamte String ab der Startposition bis zum Ende von der Mid Funktion zurückgegeben.

UCase und LCase

Die Funktionen UCase und LCase stehen für engl. "Uppercase" und "Lowercase", also für Großschreibung und Kleinschreibung. UCase verwandelt einen String in lauter Großbuchstaben, während LCase lauter Kleinbuchstaben zurück liefert:

strText = "Ein Beispieltext"
Response.Write UCase(strText) & "<BR>"
Response.Write LCase(strText)

Ergebnis: 
EIN BEISPIELTEXT
ein beispieltext

Die Funktionen LCase und UCase werden unter anderem dafür benutzt, um einen String mit einem anderen vergleichen zu könen ohne auf Groß- oder Kleinschreibung Rücksicht zu nehmen. Dies kann einiges an Programmierarbeit sparen helfen, wie das folgende Beispiel zeigt:

Ursprünglicher Vergleich:
If strRet = "Ja" Or strRet = "ja" Or strRet = "JA" Then
	Response.Write "Sie haben sich für ""JA"" entschieden!"
ElseIf strRet = "Nein" Or strRet = "nein" Or strRet = "NEIN" Then
	Response.Write "Sie haben sich für ""NEIN"" entschieden!"
Else
	Response.Write "Sie haben sich nicht entschieden!"
End If

Vergleich mit UCase modifiziert:
If UCase(strRet) = "JA" Then
	Response.Write "Sie haben sich für ""JA"" entschieden!"
ElseIf UCase(strRet) = "NEIN" Then
	Response.Write "Sie haben sich für ""NEIN"" entschieden!"
Else
	Response.Write "Sie haben sich nicht entschieden!"
End If

InStr und InStrRev

Die Funktionen InStr und InStrRev dienen dazu, um die Position einer Zeichenkette in einer anderen Zeichenkette ausfindig zu machen. Wenn man zum Beispiel wissen möchte, an welcher Position das erste mal das Wort "klein" im String "Ein kleines Beispiel" auftaucht, so benutzt man die Funktion InStr:

Syntax:
Postition_ab_Startposition = InStr(Start, String1, String2)
Postition = InStr(String1, String2)

Beispiel:
strText = "Ein kleines Beispiel"
intPos = InStr(strText,"klein")
Response.Write "Das Wort ""klein"" ist an Position "
Response.Write intPos & " des Strings """ & strText & """."

Ergebnis: 
Das Wort "klein" ist an Position 5 des Strings "Ein kleines Beispiel".

Wenn die Function InStr den gesuchten String nicht in der Zeichenkette findet, so ist ihr Ergebnis der Wert 0.

InStrRev gibt die Position des letzen Strings in einem anderen String zurück.

Syntax:
Postition_ab_Startposition = InStrRev(String1, String2, Start)
Postition = InStrRev(String1, String2)

Beispiel:
strText = "Ein kleines Beispiel"
intPosRev = InStrRev(strText,"ein")
Response.Write "Das Wort ""ein"" ist an Position "
Response.Write intPosRev & " des Strings """ & strText & """."

Ergebnis: 
Das Wort "ein" ist an Position 7 des Strings "Ein kleines Beispiel".

Anwendungsbeispiel

Zum Schluss dieses Artikels möchte ich auf das Beispiel zurück kommen, das ich am Anfang erwähnt habe.

Um den Pfad zum Verzeichnis, in dem die Datei C:\Inetpub\wwwroot\images\logo.jpg liegt, herauszufinden, kann man die Funktion InstrRev und Left benutzen:

strDateiPfad = "C:\Inetpub\wwwroot\images\logo.jpg"
intPos = InStrRev(strDateiPfad,"\")
strOrdner = Left(strDateiPfad, intPos)
strDatei = Mid(strDateiPfad, intPos+1)
Response.Write "Ordner = " & strOrdner & "<BR>" & vbCrLf
Response.Write "Dateiname = " & strDatei & "<BR>" & vbCrLf

Ergebnis:
Ordner = C:\Inetpub\wwwroot\images\
Dateiname = logo.jpg

Schlußbemerkung

Dieser Artikel hat Ihnen hoffentlich einen Überblick über die grundsätzliche Arbeit mit Strings verschafft. Komplexere String-Operationen und Funktionen werden in weiteren Artikeln vorgestellt und mit Beispielen diskutiert.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20000503.zip

Verwandte Artikel

Einführung in Stringoperationen
http:/www.aspheute.com/artikel/20001003.htm
Erstellung eines Newstickers in ASP - Teil 2
http:/www.aspheute.com/artikel/20010209.htm
Sonderzeichen für Forms decodieren
http:/www.aspheute.com/artikel/20010404.htm
Strukturierter Aufbau in der ASP-Programmierung
http:/www.aspheute.com/artikel/20011112.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.