Einsteiger-Kapitel - String-Manipulation
Das folgende Beispiel zeigt Schritt für Schritt die verschiedenen Befehle der String Bibliothek zum Arbeiten mit Zeichenfolgen (Strings) - ihren Verwendungszweck und ihre korrekte Anwendung. Define.s String1, String2, String3
String1 = "The quick brown fox jumps over the lazy dog."
; Left gibt eine Anzahl an Zeichen von der linken Seite eines Strings zurück.
; Mid gibt eine Anzahl an Zeichen vom angegebenen Startpunkt in der Mitte eines Strings zurück.
; Right gibt eine Anzahl an Zeichen von der rechten Seite eines Strings zurück.
; Space gibt die angegebene Anzahl an Leerzeichen als einen String zurück.
; Zeigt "The brown dog."
Debug "* Left, Mid and Right"
String2 = Left(String1, 3) + Space(1) + Mid(String1, 11, 5) + Space(1) + Right(String1, 4)
Debug String2
; CountString gibt die Anzahl, wie oft der zweite String im ersten String vorkommt, zurück. Dabei wird die Groß-/Kleinschreibung beachtet.
; Zeigt 1.
Debug "* CountString"
Debug CountString(String1, "the")
; Die LCase (und UCase) Funktionen können verwendet werden, um einen String komplett in kleine (oder große) Buchstaben umzuwandeln.
; Zeigt 2
Debug "* CountString and LCase"
String2 = LCase(String1)
Debug CountString(String2, "the")
; FindString kann verwendet werden, um die Position eines Strings in einem anderen zu finden.
; Zeigt 17.
Debug "* FindString"
Debug FindString(String1, "fox")
; RemoveString kann verwendet werden, um einen String aus einem anderen zu entfernen.
; Zeigt The quick fox jumps over the lazy dog.
Debug "* RemoveString"
String2 = RemoveString(String1, " brown")
Debug String2
; ReplaceString kann verwendet werden, um das Vorkommen eines Teilstrings innerhalb eines anderen Strings zu ändern.
; Zeigt The quick brown fox jumps over the sleeping dog.
Debug "* ReplaceString"
String2 = ReplaceString(String1, "lazy", "sleeping")
Debug String2
; StringByteLength gibt die Länge eines Strings in Bytes zurück - im angegebenen Format oder
; den aktuellen Standard, wenn kein Format angegeben wird (ohne das abschließende Nullzeichen).
Debug "* StringByteLength"
; Zeigt 44.
Debug StringByteLength(String1, #PB_Ascii)
; Zeigt 88.
Debug StringByteLength(String1, #PB_Unicode)
; StringField kann verwendet werden, um einen indexierten Teilstring aus einem Zielstring zu erhalten.
; Nützlich zum Beispiel für das Konvertieren von String in Listen.
; StringField funktioniert auch mit einem Leerzeichen als Trennzeichen,
; aber hoffentlich macht dieses Beispiel das Verhalten der Funktion noch deutlicher.
; Zeigt jumps.
Debug "* StringField"
String2 = ReplaceString(String1, " ", "\")
Debug String2
String3 = StringField(String2, 5, "\")
Debug String3
; Trim entfernt Leerzeichen vom Anfang und Ende eines Strings.
; Ähnlich verhält sich LTrim am linken Ende (Start) eines Strings und RTrim am rechten Ende.
Debug "* Trim, LTrim and RTrim"
String2 = Space(10) + String1 + Space(8)
Debug #DQUOTE$ + String2 + #DQUOTE$
String3 = Trim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$
String3 = LTrim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$
String3 = RTrim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$
; LSet setzt einen String - ausgehend vom linken Ende - auf eine bestimmte Länge. Dabei wird
; gegebenenfalls mit Leerzeichen aufgefüllt oder einem anderen angegebenen Zeichen.
; Ist der String bereits länger als die angegebene Länge, wird er abgeschnitten.
Debug "*LSet"
Debug LSet("Abc", 10, "*")
Debug LSet("Abcd", 10, "*")
Debug LSet("Abcde", 10, "*")
; Ähnlich füllt RSet einen String ausgehend vom rechten Ende auf.
Debug "* RSet"
Debug RSet("1.23", 10, "0")
Debug RSet("10.23", 10, "0")
Debug RSet("100.23", 10, "0")
; Str wandelt einen vorzeichenbehafteten ("signed") Quad-Wert in einen String, ähnlich wandelt StrF Float-Werte um,
; StrD wandelt Doubles und StrU konvertiert vorzeichenlose ("unsigned") Werte - die letzten zwei Funktionen haben
; einen optionalen Parameter, um anzuzeigen, wieviele Dezimalstellen angezeigt werden sollen.
Debug "* Str, StrF and StrD"
Debug Str(100)
Debug StrF(1.234, 3)
Debug StrD(123456.789, 3)
; Val wird einen String-Wert in sein numerisches Äquivalent (Quad) umwandeln.
; ValD und ValF führen die gleiche Funktion für Floats und Doubles aus.
Debug "* Val"
Debug Val("123")
; Bin wird einen numerischen Wert in sein binäres Äquivalent konvertieren.
; Hex wird einen in sein hexadezimales Äquivalent umwandeln.
Debug "* Bin and Hex"
Debug Bin(19)
Debug Hex(19)
Einsteiger-Kapitel Navigation
< Vorheriges: Schleifen | Überblick | Nächstes: Speichern von Daten im Speicher >