Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Skript für die freie Statistiksoftware R starten... (https://www.delphipraxis.net/134316-skript-fuer-die-freie-statistiksoftware-r-starten.html)

BoolString 19. Mai 2009 23:26


Skript für die freie Statistiksoftware R starten...
 
Ich habe das Problem, daß ich für eine statistische Auswertung gerne ein Skript in der freien Statistiksoftware R (www.r-project.org) starten möchte. Das Skript selbst funktioniert unter R und wir auch korrekt abgearbeitet. Nun würde ich es aber gerne aus einer Delphi Applikation heraus starten.

Dazu habe ich versucht R via ShellExecute zu starten und als Parameter die komplette Skriptdatei inklusive Pfad zu übergeben. R wird zwar gestartet, allerdings kommt vor dem Start die Meldung (vermutlich von R), daß das Skript ignoriert wurde und R startet nach der Bestätigung auf den OK Button der Nachricht ganz normal. Es wird kein Skript geladen und die GUI von R sieht so aus, als wenn man kein Skript übergeben hat.

Habe ich da etwas übersehen, müssen noch weitere Parameter mit angegeben werden oder habe ich einen ganz grundlegenden Fehler? Dies hat doch sicherlich schon mal jemand gemacht...

Liebe Grüße

Jan

Delphi 2009, Win Vista Business


Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
Var R_Path     : String;
    Skript_Path : String;
    Full_Path  : String;
//    temp_Path  : Array [0..1024] of Char
begin
  R_Path     := 'C:\Program Files\R\R-2.7.0\bin\Rgui.exe';
  Skript_Path := 'E:\Projekte\VPR-LOKI\LOKI-Browser\R-Script Entwicklung\R-Script Dokumentation\LOKI-Hydrography-CTDO.r';

  ShellExecute (Handle, nil, PChar (R_Path), PChar(Skript_Path), '', SW_NORMAL);

end;

Satty67 19. Mai 2009 23:32

Re: Skript für die freie Statistiksoftware R starten...
 
Schon mal versucht den Parameter in Anführungszeichen zu setzen?
Delphi-Quellcode:
Skript_Path := '"E:\Projekte\VPR-L ... ation\LOKI-Hydrography-CTDO.r"';

BoolString 20. Mai 2009 10:51

Re: Skript für die freie Statistiksoftware R starten...
 
Leider nicht. Deie Meldung kommt immer noch. Ich hab sie mal unten angehängt.
Habe inzwischen (glaub ich) alle Versionen mit Anführungszeichen und abschließendem Slash / Backslash ausprobiert...

Hast du dies schon mal gemacht, bzw. lauffähig hinbekommen?

jan



---------------------------
Information
---------------------------
ARGUMENT 'E:\Projekte\VPR-LOKI\LOKI-Browser\R-Script Entwicklung\R-Script Dokumentation\LOKI-Hydrography-CTDO.r' __ignored__

---------------------------
OK
---------------------------

Satty67 20. Mai 2009 14:16

Re: Skript für die freie Statistiksoftware R starten...
 
Also zumindest wenn der Parameter in Anführungszeichen gesetzt wird, wird ShellExecute bei mir wie gewünscht ausgeführt.

Rgui.exe habe ich durch eine kleine Exe getauscht, dass mir nur die Parameter listet. Wird gestartet und der komplette ScriptPfad wird als einzelner Parameter angezeigt.

***

Die Fehlermeldung kommt von Rgui.exe?

Evtl. mal testweise das Script zusammen in den Exe-Ordner legen oder den Pfad E:\.. nochmal penibel kontrollieren. Manchmal übersieht man ein falsches Zeichen gleich öfter.

BoolString 20. Mai 2009 16:06

Re: Skript für die freie Statistiksoftware R starten...
 
Ich bin mir ehrlich gesagt nicht sicher von wo die Fehlermeldung kommt. Es ist nur ein kleines Infofenster, welches keine weiteren Informationen aufführt als die oben gegebenen. Danach wird bei mir die R-GUI gestartet. Nur leider passiert nichts.

Meine Vermutung wäre, daß R jetzt gerne noch irgendwelche weiteren Parameter möchte. Ich glaube fast nicht, daß es an den Pfaden liegt, werde aber hier noch einmal experimentieren. Ich habe sogar einmal komplett Slash und Backslash gegeneinander vertausscht (R möchte das intern so haben... Tantiemen an die Herkunft).

Ich habe die Dokumentationen zu R durch. Aber richtig was finden tut man hier nichts über eine Fernsteuerung/Shellaufrufe. Theoretisch sollte es aber funktionieren... Bin momentan echt etwas ratlos...

Jan

Satty67 20. Mai 2009 17:09

Re: Skript für die freie Statistiksoftware R starten...
 
Also RGui.exe verwende ich nicht, aber was ich auf die schnelle gefunden hab:
Delphi-Quellcode:
Skript_Path := '--args "E:\Projekte\VPR-L ... ation\LOKI-Hydrography-CTDO.r"';
Scriptpfad in Anführungszeichen und davor, außerhalb der Anführungszeichen den Parameter --args.

BoolString 22. Mai 2009 13:47

Re: Skript für die freie Statistiksoftware R starten...
 
Bin gerade unterwegs und kann es nicht testen. werde mich aber morgen wieder melden. Schönen Dank schon einmal.
Wo hast du denn was über die Aufrufmodalitäten gefunden? Irgendwie ist mir das nicht untergekommen. Deswegen bin ich davon ausgegangen, daß man einfach Pfad und Skript übergibt...


Herzlichen Dank

Jan

NormanNG 22. Mai 2009 13:58

Re: Skript für die freie Statistiksoftware R starten...
 
Hi,

ich hab auf die Schnell das hier gefunden:
http://cran.r-project.org/doc/manual...-under-Windows

Satty67 22. Mai 2009 14:07

Re: Skript für die freie Statistiksoftware R starten...
 
Zitat:

Zitat von BoolString
Wo hast du denn was über die Aufrufmodalitäten gefunden?

Nur die Parameterliste zum Aufruf via File-verknüpfung (was ja dann passen sollte).

NormanNG hat ja eine riesen Dokumentation gefunden (die muss wirklich gut versteckt gewesen sein). Scheinbar geht es darum, das alles nach --args durchgreicht wird, könnte also klappen.

BoolString 28. Mai 2009 15:21

Re: Skript für die freie Statistiksoftware R starten...
 
Sorry, daß ich mich so lange nicht gemeldet habe. Hatte unerwartet einige Tage zu tun....

Auch wenn die Dokumentation wohl nicht so richtig gut versteckt gewesen ist, ziehe ich meist deren Ausdrucke der pdf Dateien vor. Leider hatte meine alte Doku die Anhänge nicht gehabt. Keine Ahnung, wo die verloren gegangen sind. Ist zwar keine richtige Entschuldigung, hab mir aber erst mal das neue 'Getting started with R' besorgt.

Der --args parameter ist es nicht. Mit dem kann ich andere Dinge fernsteuern.

Mit dem --file Kommando komme ich zumindest schon mal an die Kommandozeile (r.exe) heran. Die produziert mir aus den Plot dann auch schön ein pdf. Ich würd aber gerne die R GUI (rgui.exe) mit einem Skript starten um einige interaktive Darstellungen nutzen zu können. Dies scheint aber irgendwie nicht vorgesehen zu sein. Alle Versuche die GUI mit den Kommandos zu füttern sind bisher fehlgeschlagen. Dafür hab ich inzwischen gemerkt, daß die Kommandozeile sowohl mit Slash, wie auch Backslash zurecht kommt...

Hat vielleicht noch jemand eine Idee?

Liebe Grüße aus Bremerhaven

Jan

Delphi-Quellcode:
Var R_Path     : String;
    Skript_Path : String;
begin
  R_Path     := '"C:\Program Files\R\R-2.7.0\bin\R.exe\"';
//  R_Path     := '"C:\Program Files\R\R-2.7.0\bin\Rgui.exe\"';
//  Skript_Path := '--file="E:\Projekte\VPR-LOKI\LOKI-Browser\R-Script Entwicklung\R-Script Dokumentation\LOKI-Hydrography-CTDO.r"';
  Skript_Path := '--file="E:/Projekte/VPR-LOKI/LOKI-Browser/R-Script Entwicklung/R-Script Dokumentation/LOKI-Hydrography-CTDO.r"';

  ShellExecute (Handle, nil, PChar (R_Path), PChar(Skript_Path), '' , SW_NORMAL);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz