Strings in YAB bearbeiten
left$
mid$
right$
Strings umdrehen
Strings rotieren
Zeichen in Strings austauschen
Zeichen in Strings löschen
Leerzeichen entfernen bei Ausgabe eines Strings
Strings mit Leerzeichen verwenden
str$
token$
val$
Strings in YAB bearbeiten
Um in Yab Strings zu bearbeiten gibt es mehrere Befehle. Manche von denen Verändern einen String, andere wiederum vergleichen diese mit einem Anderen. An dieser Stelle werden ein paar Befehle beschrieben:
left$()
mid$()
right$()
str$()
token()
val()
Hier ein paar Möglichkeiten Strings zu bearbeiten:
Strings umdrehen
Strings rotieren
Zeichen in Strings austauschen
Zeichen in Strings löschen
zurück zur Übersicht
left$
Der Befehl left$() liefert den linken Teil eines Strings zurück. Der Befehl left$() benötigt zwei Informationen, den String der bearbeitet werden soll und eine Zahl. Die Zahl gibt an wieviele Zeichen vom String zurückgeben werden sollen.
print left$("Dies ist der Beispielstring",9)
a$="Dies ist der Beispielstring"
print left$(a$,9)
In der oberen Zeile des grauen Kastens geben sie einen Teil des Strings über den Print Befehl aus. Das Ergebnis sieht so aus:
Dies ist
Im unteren Teil des grauen Fenster geben Sie auch einen Teil eines Strings aus, der aber in einer Variablen gespeichert ist. Das Ergebnis ist identisch mit den oberen. Nur das Sie den Vorteil haben, den String variabel zu halten.
zurück zur Übersicht
Leerzeichen entfernen bei Ausgabe eines Strings
Sollte nach dem Auslesen einer Datei ein oder mehre Leerzeichen vor und/oder hinter einer Ausgabe eines Strings sein, kann man diese mit yab- internen Befehlen entfernen.
Dazu bedienen wir uns den Befehlen: trim$(), ltrim$(), rtrim$()
Mit trim$() entfernt man alle Leerzeichen die sich vor und hinter dem Stringeintrag befinden:
trim$(Stringname$)
Mit ltrim$() entfernt man alle Leerzeichen die sich vor (links) dem Stringeintrag befinden:
ltrim$(Stringname$)
Mit rtrim$() entfernt man alle Leerzeichen die sich hinter (rechts) dem Stringeintrag befinden:
rtrim$(Stringname$)
Beispiel:
Stringname$=" Hallo Haiku "
rtrim$(Stringname$)
print Stringname$
Ausgabe="Hallo Haiku "
mid$
Der Befehl mid$() liefert einen Teil eines Strings zurück. Der Befehl mid$() benötigt drei Informationen, den String der bearbeitet werden soll und zwei Zahlen. Die erste Zahl gibt an, ab welcher Stelle im String gezählt werden soll. Die zweite Zahl gibt an wie viele Zeichen vom String zurückgeben werden sollen.
Als Beispiel:
Sie haben einen String "Testen" und daraus möchten Sie das st haben. Dann schreiben Sie mid$(testen,3,2).
print mid$("Dies ist der Beispielstring",6,7)
a$="Dies ist der Beispielstring"
print mid$(a$,6,7)
In der oberen Zeile des grauen Kastens geben sie einen Teil des Strings über den Print Befehl aus. Das Ergebnis sieht so aus:
ist der
Im unteren Teil des grauen Fenster geben Sie auch einen Teil eines Strings aus, der aber in einer Variablen gespeichert ist. Das Ergebnis ist identisch mit den oberen. Nur das Sie den Vorteil haben, den String variabel zu halten.
zurück zur Übersicht
right$
Der Befehl right$() liefert den rechten Teil eines Strings zurück. Der Befehl right$() benötigt zwei Informationen, den String der bearbeitet werden soll und eine Zahl. Die Zahl gibt an wie viele Zeichen vom String zurückgeben werden sollen.
print right$("Dies ist der Beispielstring",9)
a$="Dies ist der Beispielstring"
print right$(a$,9)
In der oberen Zeile des grauen Kastens geben sie einen Teil des Strings über den Print Befehl aus. Das Ergebnis sieht so aus:
ielstring
Im unteren Teil des grauen Fenster geben Sie auch einen Teil eines Strings aus, der aber in einer Variablen gespeichert ist. Das Ergebnis ist identisch mit den oberen. Nur das Sie den Vorteil haben, den String variabel zu halten.
zurück zur Übersicht
Strings umdrehen
Da es in YAB leider keinen Befehl gibt mit welchem man einen String umdrehen kann, bilden wir diesen mit Hilfe der vorhandenen Befehle nach.
export sub yStrRevert$(StringToRevert$)
local i
local StrRevert$
StrRevert$ = ""
REM revert the string
for i = 1 to len(StringToRevert$)
StrRevert$ = StrRevert$ + mid$(StringToRevert$, (len(StringToRevert$) + 1) - i, 1)
next i
return StrRevert$
end sub
Aufruf der Subroutine:
yStrRevert(<STRING>)
<STRING> = Beinhaltet den Text/String welcher umgedreht werden soll.
Beispiel:
print yStrRevert$("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.")
Im Beispiel soll der Text/String "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern." umgedreht, sprich rückwärts, geschrieben werden.
Ergebnis:
.nreyaB hcrud reuq ixaT netsolrhawrev ttelpmok mi tgaj znarF
Das "export" am Anfang der Subroutine kann auch weggelassen werden, es dient lediglich dazu die Routine zu exportieren und in anderen Programmen wiederverwenden zu können. Somit kann man sich eigene Libraries erstellen und muss den Code nicht in jedem Programm neu schreiben. |
Strings rotieren
Da es in YAB leider keinen Befehl gibt mit welchem man einen String nach Links oder Rechts verschieben kann, bilden wir diesen mit den vorhandenen String- Befehlen nach.
export sub yStrRotate$(StringToRotate$, Retries, Direction$)
local i
REM rotate the string to the left
if (upper$(Direction$) = "LEFT") or (upper$(Direction$) = "L") then
for i=1 to Retries
StringToRotate$ = right$(StringToRotate$, len(StringToRotate$) - 1) + left$(StringToRotate$, 1)
next i
end if
REM rotate the string to the right
if (upper$(Direction$) = "RIGHT") or (upper$(Direction$) = "R") then
for i=1 to Retries
StringToRotate$ = right$(StringToRotate$, 1) + left$(StringToRotate$, len(StringToRotate$) - 1)
next i
return StringToRotate$
end sub
Aufruf der Subroutine:
yStrRotate$(<STRING>, <RETRIES>, <DIRECTION>)
<STRING> = Beinhaltet den Text/String welcher rotiert werden soll.
<RETRIES> = Gibt an um wie viele Stellen der Text/String rotiert werden soll.
<DIRECTION> = Gibt an in welche Richtung der Text rotiert werden soll. Dabei stehen "right", "RIGHT", "r" und "R" für rechts, und "left", "LEFT", "l" und "L" für links.
Beispiel:
print yStrRotate$("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.", 12, "l")
Im Beispiel wird der Text/String "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern." um 12 Stellen nach links verschoben, wobei die wegfallenden Zeichen am Ende des String wieder angehängt werden.
Ergebnis:
m komplett verwahrlosten Taxi quer durch Bayern.Franz jagt i
Das "export" am Anfang der Subroutine kann auch weggelassen werden, es dient lediglich dazu die Routine zu exportieren und in anderen Programmen wiederverwenden zu können. Somit kann man sich eigene Libraries erstellen und muss den Code nicht in jedem Programm neu schreiben. |
Zeichen in Strings austauschen
Da es in YAB leider keinen Befehl gibt mit welchem man einzelne Zeichen in einem String austauschen kann, bilden wir diesen mit Bordmitteln nach.
export sub yStrChrReplace$(StringToReplace$, Character1$, Character2$)
local i
for i = 1 to len(StringToReplace$)
if mid$(StringToReplace$, i, 1) = Character1$ then
mid$(StringToReplace$, i, 1) = Character2$
end if
next i
StringToReplace$
end sub
Aufruf der Subroutine:
yStrChrReplace$(<STRING>, <CHARACTER1>, <CHARACTER2>)
<STRING> = Beinhaltet den String welcher manipuliert werden soll.
<CHARACTER1> = Gibt das Zeichen an welches ersetzt werden soll.
<CHARACTER2> = Gibt das Zeichen an mit dem ersetzt werden soll.
Beispiel:
print yStrChrReplace$("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.", "a", "x")
Im Beispiel werden alle Buchstaben "a" im Text/String "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern." durch das Zeichen "x" ersetzt.
Ergebnis:
Frxnz jxgt im komplett verwxhrlosten Txxi quer durch Bxyern.
Das "export" am Anfang der Subroutine kann auch weggelassen werden, es dient lediglich dazu die Routine zu exportieren und in anderen Programmen wiederverwenden zu können. Somit kann man sich eigene Libraries erstellen und muss den Code nicht in jedem Programm neu schreiben. |
Zeichen in Strings löschen
Da es in YAB leider keinen Befehl gibt mit welchem man einzelne Zeichen in einem String löschen kann, bilden wir diesen mit Bordmitteln nach.
export sub yStrChrDelete$(StrToDelete$, Character$)
local StrChrDelete$
local Tile$
local StrCountTiles
local i
dim Tile$(1)
StrChrDelete$ = ""
StrCountTiles = token(StrToDelete$, Tile$(), Character$)
for i = 1 to StrCountTiles
StrChrDelete$ = StrChrDelete$ + Tile$(i)
next i
StrChrDelete$
end sub
Aufruf der Subroutine:
yStrChrDelete$(<STRING>, <CHARACTER>)
<STRING> = Beinhaltet den Text/String aus welchem Zeichen gelöscht werden sollen.
<CHARACTER> = Gibt das Zeichen an welches aus dem Text/String gelöscht werden soll.
Beispiel:
print yStrChrDelete$("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.", "a")
Im Beispiel werden alle "a" aus dem Text/String "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern." entfernt.
Ergebnis:
Frnz jgt im komplett verwhrlosten Txi quer durch Byern.
Das "export" am Anfang der Subroutine kann auch weggelassen werden, es dient lediglich dazu die Routine zu exportieren und in anderen Programmen wiederverwenden zu können. Somit kann man sich eigene Libraries erstellen und muss den Code nicht in jedem Programm neu schreiben. |
Strings mit Leerzeichen verwenden
Es kommt des öfteren vor, dass man Strings mit Leerzeichen auswerten muss. Dies kann zum Beispiel dann sein, wenn vom Benutzer eingegebene Wörter angefordert werden (z.B. Name einer Datei).
Das speichern der mit Leerzeichen eingegebenen Eingabe des Benutzers ist dabei nicht das Problem, denn dies wird ausgelesen und beispielsweise in einer Variable gespeichert. Beim Auswerten dieser Eingabe, durch verwenden der Variablen, wird jedoch ohne zusätzliche Definierung nur der erste Teil ausgegeben.
Um den gesamten Wert (String) zu erhalten, muss dieser zwischen zwei Ausrufezeichen gesetzt werden. Da yab allerdings diese auch als Befehlszeichen verwendet, muss diese Angabe von dieser getrennt werden. Dies macht man mit folgender Zusatzangabe:
"\""+Variable$+"\""
str$()
Mit dem Befehl str$() können Sie eine Zahlvariable in einen String umwandeln.
a=5
print str$(a)
Als erstes wird eine Zahlvariable erstellt mit dem Wert 5. In der nächsten Zeile geben wir diese als String aus.
zurück zur Übersicht
token()
Der Befehl token() teilt einen String, aufgrund eines von ihnen bestimmten Zeichens (delimiters), auf. Der Befehl token() benötigt 3 Informationen.
- Die erste Information ist der String, den Sie Splitten möchten.
- Die zweite Information ist das Array in dem Sie die einzelnen Stringteile speichern möchten.
- Die dritte Information ist das Trennzeichen (delimiter)
Die einzelnen Informationen werden in der Klammer geschrieben und sind voneinander mit einem Komma getrennt. Das untenstehende Beispiel zeigt ihnen, wie Sie token verwenden können.
b$ = "1 Test Tree"
dim d$(1)
n = token(b$,d$(), " ")
for i = 1 to n
print d$(i)
next i
In diesem Beispiel wurde eine Stringvariable b$ erzeugt. Diese Variable hat den Inhalt "1 Test Tree" und der Inhalt soll jetzt anhand des Leerzeichens in Einzelteile geteilt werden.
Um die Einzelteile zu speichern erzeugen wir ein Array mit dem Befehl dim d$(1). Darunter wird jetzt der String anhand des Leerzeichens aufgeteilt und die Anzahl der Teile in die Variable n geschrieben. Die einzelnen Teile des Strings selber, speichern wir in d$(). Danach wird eine Schleife aufgerufen, die die einzelnen Teile des Arrays d$() ausgibt. <
zurück zur Übersicht
val
Mit dem Befehl val können Sie einen String in eine Zahlvariable umwandeln. Die Funktion prüft vorher, ob der String einer Zahl (floating point number) entspricht.
a$="5"
print val(a$)
Als erstes wird eine Stringvariable erstellt mit dem Wert 5. In der nächsten Zeile geben wir diese als Zahlvariable aus.
zurück zur Übersicht
YAB Hilfestellungen erstellt durch Christian Albrecht (Lelldorin) und Lorenz Glaser 2005-2017
Bereitgestellt durch BeSly, der BeOS & Zeta Wissensbasis.