Wer Xojo kennt, weiss, dass dort auch ein Shell-Objekt gibt. Nach dessen Instanziierung mit z.B. "Dim s as new Shell" kann man mit "s.execute ... " Shell-Kommandos absetzen und per "d = s.readall" oder "d = s.result" die Ergebnisse einsammeln und parsen. Nun habe ich einen Fall, wo aus Xojo heraus das Ergebnis immer leer bleibt, während exakt der gleiche Aufruf direkt im Terminal genau das richtige Ergebnis bringt. Als Plan B habe ich das Ergebnis mit " ... > result.txt" in eine Datei umgeleitet. Auch hier ist es in Xojo so, dass zwar die Datei erstellt wird, diese aber leer ist. Direkt im Terminal funktioniert es ganz normal. Bei den Aufrufen handelt es sich um die CLI-Version des Barcode-Readers "zbarimg". Unter Windows funktioniert die Version mit der Umleitung in eine Datei übrigens auch aus Xojo heraus, das direkte Lesen mit s.result oder s.readall aber ebenfalls nicht. Probiere ich zur Sicherheit statt dem Aufruf von "zbarimg" dagegen mal ein anderes Shellkommando, wie "dir" oder "time" funktioniert das in jedweder Version. Zurück zum Mac: Was könnte die Ursache für das Problem sein?
Ich glaube, ich habe das Problem gelöst. Die Shell in Xojo ist einfach 'n Ticken dümmer als das Terminal. Während im Terminal der Aufruf des Namens "zbarimg ..." genügt (vermutlich kann das Terminal die Umgebungsvariablen lesen), bedarf es in der Shell des kompletten Pfades. Den habe ich mit "mdfind zbarimg" herausbekommen, bei mir lautet er: "/usr/local/Cellar/zbar/0.10_10/bin/zbarimg". Wenn ich also den Pfad mit aufrufe, funktioniert es ...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.