Samstag, 29. September 2012

yab - die "yab"- Version ermitteln

Wie man das Vorhandensein einer "yab"- Installation überprüfen kann, habe ich ja bereits in einem meiner letzten Posts geschrieben. Heute möchte ich Euch eine Möglichkeit zeigen, wie man die Version des installierten "yab" ermitteln kann.

Wozu man dies brauchen kann, weis ich noch nicht so richtig, aber Verwendungszwecke gibt es ja recht viele, auch wenn mir im Moment keiner einfallen will. Für mich dient es mehr zum auffrischen meiner "yab"- Kenntnisse und Programmierfähigkeiten.

Das folgende kleine Beispiel mit der dazugehörigen Sub- Routine zeigt Euch einen möglichen Weg um an die gewünschte Information heran zu kommen. Wie immer sind die Quelltexte mit vielen Kommentaren versehen.

Beispiel
import GetYabVersion

print _GetYabVersion$()


Sub- Routine
export sub _GetYabVersion$()

  // lokale Variablen- Definition
  local SystemInput$
  local Version$
  local Position
  local Search$
 
  // nach dieser Zeichenkette wird gesucht
  Search$ = "This is version"
 
  // den Befehl "yab" über die Kommandozeile aufrufen und
  // das Ergebnis in SystemInput$ speichern
  SystemInput$ = system$("yab")
 
  // ermittelt die Position an welcher die gesuchte Zeichenkette
  // beginnt
  Position = instr(SystemInput$, Search$)
 
  // ab dieser Position, zehn Zeichen prüfen
  for i = Position + len(Search$) to Position + len(Search$) + 10
 
    // wenn das aktuelle Zeichen kein Leerzeichen (am Anfang) bzw.
    // kein Komma (am Ende) ist dann ...
    if (mid$(SystemInput$, i, 1) <> " ") and (mid$(SystemInput$, i, 1) <> ",") then
   
      // ... in Version$ speichern
      Version$ = Version$ + mid$(SystemInput$, i, 1)
  
    endif
  
  next
 
  // Ergebnis zurückgeben
  return Version$
 
end sub


(getestet mit Haiku R1 Alpha 3 und yab 1.5 & yab 1.7)


1 Kommentar:

  1. Mir fällt momentan auch kein triftiger Grund ein, aber interessant wäre es, von einem gebundenen yab- Programm die Version zu erfahren.

    Eventuell geht das schon mit dieser Routine, da yab ja an den Source gebunden wird.

    Gruß Lelldorin

    AntwortenLöschen