Donnerstag, 15. März 2012

yab - wir "test"- en weiter (Teil 2)

So, wegen der Vollständigkeit  hier nun auch noch die restlichen yab- Umsetzungen zum "test"- Befehl. Die Sub- Routinen sind, wie auch schon die letzten, sehr einfach gehalten und müssen nicht näher erklärt werden.

Die Sub- Routine "_IsGreaterThanZero()" prüft ob die/das angegebene Datei/Verzeichnis existiert und eine Größe, größer als 0 hat. Existiert die/das Datei/Verzeichnis und hat eine Größe, größer als 0, wird als Ergebnis 1 (True), andernfalls 0 (False) zurückgegeben.

Der Aufruf der Sub- Routine kann z.B. wie folgt geschehen.

print _IsGreaterThanZero("/boot/home/index.html")

export sub _IsGreaterThanZero(Filename$)

  // den Befehl "TEST -f" ausführen
  // (-s = Datei existiert und und ist größer als 0 bytes)

  if (system("test -s " + Filename$)) then

    return false

  else

    return true

  endif

end sub


Die Sub- Routine "_IsLink()" prüft ob die/das angegebene Datei/Verzeichnis ein symbolischer Link ist und gibt entsprechend 0 (False) oder 1 (True) zurück.

Der Aufruf der Sub- Routine kann z.B. wie folgt geschehen.

print _IsLink("/boot/home/index.html")

export sub _IsLink(Filename$)

  // den Befehl "TEST -h" ausführen
  // (-h = Datei existiert und ist ein symbolische Verknüpfung/Link)

  if (system("test -h " + Filename$)) then

    return false

  else

    return true

  endif

end sub


Die Sub- Routine "_IsReadable()" prüft ob die/das angegebenen Datei/Verzeichnis existiert und lesbar ist und gibt entsprechend 0 (False) oder 1 (True) zurück.

Der Aufruf der Sub- Routine kann z.B. wie folgt geschehen.

print _IsFile("/boot/home/index.html")

export sub _IsReadable(Filename$)

  // den Befehl "TEST -r" ausführen
  // (-r = Datei existiert und ist lesbar)

  if (system("test -r " + Filename$)) then

    return false

  else

    return true

  endif

end sub


Auf das Beispiel mit der Funktion "_IsWritable()" habe ich an dieser Stelle bewußt verzichtet, da das Ergebnis dieser Funktion, aus einem unerfindlichen Grund immer 1 ist. Möglicherweise handelt es sich dabei auch um einen Bug.


(getestet mit Haiku R1 Alpha 3 und yab 1.7)

Keine Kommentare:

Kommentar veröffentlichen