Mittwoch, 15. August 2012

yab - ein wenig String- Manipulation

Wie Ihr sicherlich schon bemerkt habt, kommt in letzter Zeit nicht mehr soviel zum Thema "yab" von mir. Dies liegt nicht etwa daran, dass ich keine Lust mehr habe, sondern daran, dass ich im Moment recht wenig freie Zeit habe.

Dennoch habe ich mich in einem ruhigen Moment hingesetzt und zwei kleine Sub- Routinen in Sachen String- Manipulation ausgearbeitet.

Die erste Sub- Routine stellt eine Funktion zur Verfügung, welche einen Teil- String, beginnend mit dem ersten Vorkommen des angegebenen Zeichens bis zum Ende des Strings zurückgibt. Klingt irgendwie kompliziert, ist es aber nicht, wie Ihr im Beispiel unten sehen werdet.

Die zweite Sub- Routine stellt hingegen eine Funktion zur Verfügung, welche einen Teil- String, vom Angang des übergebenen Strings bis zum ersten Vorkommen des angegebenen Zeichens zurück gibt. Auch hier zeigt das untenstehende Beispiel was genau gemeint ist.


Beispiel 1

import GetStringFromCharacter

print _GetStringFromCharacter$("Hallo Welt", "W")


Ergebnis:

Welt


Beispiel 2

import GetStringToCharacter

print _GetStringToCharacter$("Hallo Welt", "W")


Ergebnis:

Hallo W


Sub- Routine 1 (GetStringFromCharacter)

export sub _GetStringFromCharacter$(String$, Character$)

  // lokale Variablen- Definition
  local i
  local Result$
 
  // Für jedes Zeichen des Strings einmal nachsehen
  for i = 1 to len(String$)

    // Wenn das Zeichen gefunden wurde...
    if mid$(String$, i, 1) = Character$ then
  
      // ... den Rest des Strings als Ergebnis zurückgeben ...
      Result$ = right$(String$, len(String$) - (i - 1))
   
      // ... und abbrechen.
      break
      
    else
  
      // Wenn das Zeichen nicht gefunden wurde,
      // einen leeren String zurückgeben
      Result$ = ""
   
    endif
  
  next i
 
  // Erbegnis zurückgeben
  return Result$
 
end sub


Sub- Routine 2 (GetStringToCharacter)

export sub _GetStringToCharacter$(String$, Character$)

  // lokale Variablen- Definition
  local i
  local Result$
 
  // Für jedes Zeichen des Strings einmal nachsehen
  for i = 1 to len(String$)

    // Wenn das Zeichen gefunden wurde...
    if mid$(String$, i, 1) = Character$ then
  
      // ... den String vom Anfang bis zum gewählten
      // Zeichen zurückgeben ...
      Result$ = left$(String$, i)
   
      // ... und abbrechen.
      break
      
    else
  
      // Wenn das Zeichen nicht gefunden wurde,
      // einen leeren String zurückgeben
      Result$ = ""
   
    endif
  
  next i
 
  // Erbegnis zurückgeben
  return Result$
 
end sub


(getestet mit Haiku R1 Alpha 3 und yab 1.5)

Keine Kommentare:

Kommentar veröffentlichen