Drucken
Hauptkategorie: Entwicklung
Kategorie: yab
Zugriffe: 1327

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 " 



zurück zur Übersicht 


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.


zurück zur Übersicht 


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.

zurück zur Übersicht


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.


zurück zur Übersicht
 


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.


zurück zur Übersicht 


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$+"\""


zurück zur Übersicht 


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 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.