Autor Beitrag
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Fr 02.10.09 11:43 
Hallo.

ich versuche gerade in meinem Programm einige Sachen mit gnuplot darzustellen. Das heißt, der Befehlssatz sowie die Parameter und Koordinaten werden in einer Textdatei geschrieben, welche aus gnuplot heraus aufgerufen werden soll, um Grafik zu erzeugen.

Angenommen, die Datei ist bereits vorhanden. Was ich wissen möchte, wie ich diese mit gnuplot.exe aufrufe.
Die Funktion ShellExecute kenne ich, aber wie übergebe ich außer der exe-datei noch die auszuführende datei?

Danke.
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Fr 02.10.09 11:49 
habe gefunden im Net:

"Open SomeText.txt with Notepad

ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\SomeText.txt', nil, SW_SHOWNORMAL) ;"
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mo 12.10.09 13:09 
Bin auf ein Problem gestossen: Gnuplot führt die übergebene Datei nicht aus. Ich habe mal gelesen, dass man gnuplot in Umgebungsvariablen bekannt machen soll bzw eine komische LIB-Datei mit allen benutzten Verzeichnissen.

Weiß jemand, wie ich das mache, insbesondere wie ich den Pfad in Umgebungsvariablen mit ner Prozedur hinzufüge?

Danke.
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Di 13.10.09 19:45 
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
Bin auf ein Problem gestossen: Gnuplot führt die übergebene Datei nicht aus. Ich habe mal gelesen, dass man gnuplot in Umgebungsvariablen bekannt machen soll bzw eine komische LIB-Datei mit allen benutzten Verzeichnissen.


Hast Du schonmal versucht, ob ein manueller Aufruf aus der Kommandozeile funktioniert:

gnuplot datei.txt

Wenn das funktioniert, dann sollte auch ein Aufruf aus Deinem Programm funktionieren, ohne sonstigen Schnickschnack.

twm
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 14.10.09 11:22 
@dummzeuch

Ja, die Datei wird geöffnet, aber nicht ausgeführt. Im Programm gibt es auch zwei Funktionen, einmal öffnen, einmal ausführen.
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Mi 14.10.09 12:33 
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
@dummzeuch

Ja, die Datei wird geöffnet, aber nicht ausgeführt. Im Programm gibt es auch zwei Funktionen, einmal öffnen, einmal ausführen.


Laut Anleitung laedt gnuplot die Datei und fuehrt die darin aufgefuehrten Befehle aus. Steht denn in der Datei auch ein plot-Befehl, der etwas anzeigt?

twm
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Do 15.10.09 10:44 
@dummzeuch

Bei gnuplot gibt es einmal die Funktion open, die nur die Datei öffnet und somit die momentanen internen Daten - den Zustand - aktualisiert. Dann gibt es die Funktion load, die die Daten ausführt. Tut man "load" zusammen mit Datei ausführen, wird also beides gleichzeitig gemacht. Wenn ich aus Delphi heraus die Datei mit gnuplot öffne, dann passiert anscheinend nur "open", aber nicht "load". Im Bereich "Delphi CLX... (3er von oben)" läuft gerade ein Thread (Author: Roboman), wo das Problem diskutiert wird: es lässt sich mittels der Umgebungsvariable und einer LIB-Datei lösen. Aber wie?

Die Lösung des Problems soll natürlich in dem oben genannten Thread gegeben werden, hier in diesem Thread nur die Beschreibung, wie man mittels WinAPI ein Pfad in der "System->Umgebungsvariable" unterbringt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 15.10.09 10:47 
user profile icondelphijanka hat folgendes geschrieben Zum zitierten Posting springen:
hier in diesem Thread nur die Beschreibung, wie man mittels WinAPI ein Pfad in der "System->Umgebungsvariable" unterbringt.
Mittels API gar nicht. Es gibt leider dafür keine Funktion. Ich habe selbst danach einige Monate gesucht.

Funktionieren tut es über die Registry wie hier in der Library beschrieben ist:
www.delphi-library.d...ewtopic.php?p=108571

Bei einem selbst gestarteten Programm könnte man theoretisch auch den Environment Block direkt modifizieren, aber das wäre aufwändiger.