Hallo Pascaler, hallo Eike und Frank,
Eike schrieb:
Versuche doch einmal, beim betätigen eines Buttons einen Prozess zu starten. Z. B.: system( 'ls -l' );
Nun habe ich statt "system" ein "execute" eingesetzt. Dabei stellte sich dann heraus, daß meine Programmierkenntnisse doch noch arg in den Kinderschuhen stecken: :-(
Meine neue Programmzeile lautete nämlich so:
Execute('ls -l');
Es gab die Fehlermeldung: function call as a statement -- value ignored
Dann hat es ziemlich gedauert, bis mir klar wurde, daß ich die Funktion "Execute" nicht einfach so aufrufen kann, und bis ich dann darauf kam, wie ich es hinbekommen könnte, den "Wert", den eine Funktion ja schließlich zurückliefern soll, für eine Anweisung zu benutzen:
Writeln(Execute('ls -l'));
So klappte es. Aber merkwürdig finde ich es doch: Ist denn die Ausgabe von ls -l als "Wert" zu betrachten? Muß ja wohl, sonst könnte es nicht gehen. Dann war ich natürlich neugierig, ob das auch z.B. beim cp-Befehl ging:
Writeln(Execute('cp hmhmhm klapptJaDoch'));
(Wobei ich die kleine Datei "hmhmhm" mit zwei Zeilen Inhalt eigens für diesen Prüfzweck erstellt hatte.)
Das klappte auch. Was mich da aber noch mehr wundert, ist, daß ich ja den Befehl "cp eineDatei andereDatei" in der shell mit <ENTER> abschließen muß, was ich ja hier gar nicht miteingeben kann (oder steckt das schon drin?)!
Auch "Write" statt "Writeln" brachte kein wesentlich anderes Ergebnis:
Write (Execute('cp hmhmhm klapptJaDoch')); Writeln('Hallo');
ergab folgende Ausgabe:
0Hallo
statt (wie in dem ersten Fall):
0 Hallo
Aber der Kopierbefehl wurde einwandfrei ausgeführt.
Feine Sache! :)
Allerdings: "Langsam ernährt sich das Eichhörnchen", ABER ES ERNÄHRT SICH !!! ;-)
Nun meine Frage: Kann ich diese Funktion "Execute" auch anders verwenden, als sie als Wert für "Writeln" zu benutzen, und was könnte man damit bewirken?
Herzlichen Dank für Eure Hilfen!
Fröhliche Grüße Roland