![]() |
Zugriff auf txt files
Liebes Forum,
Ein Programm das ich mit Python geschrieben habe ("main.exe") aktualisiert bei Ausführung 2 Txt Dateien. Es handelt sich dabei um ein Sudoku Spiel, die txt Dateien haben zum einen das volle Zahlengitter und zum anderen ein Zahlengitter mit Nullen als Lücken. Rufe ich das Programm mit Delphi auf anstelle mit Windows Doppelclick:
Code:
Dann werden die txt- Dateien nicht aktualisiert. Das Problem bleibt bestehen wenn ich 'open' mit 'runas' ersetze.
ShellExecute(0, 'open', PChar(pfadExe + '\main\main.exe'), nil, nil, SW_SHOW);
Was könnte hier das Problem sein? Vielen Dank für Antworten. |
AW: Zugriff auf txt files
Hallo,
gib mal das Arbeitsverzeichnis der main.exe als fünften Parameter an. MfG |
AW: Zugriff auf txt files
Und gleichzeitig auch mal das Programm reparieren.
Erstmal, warum hat das Programm keine Fehlerbehandlung? Extern zu sehen, dass die Zieldateien sich nicht aktualsieren ist Eines, aber wenn das Programm auch nicht sagt was es macht, bzw. warum es etwas nicht macht, ist unpraktisch. Und es ist nahezu immer eine blöde Idee mit Relativen Pfaden zu arbeiten, wenn man mit absoluten Pfaden arbeiten will. Ja, eigentlich ist es OK, wenn ein Programm im aktuellen "Arbeitsverzeichnis" arbeitet, anstatt im Verzeichnis des Programms, so wie z.B. die GIT.exe Aber hier kann man auch im Python den Pfad der EXE, bzw. des Scriptes auslesen und dann verwenden, um seine Dateien absolut zu suchen und zu verarbeiten. |
AW: Zugriff auf txt files
Danke TUhr, es funktioniert. Der Vollständigkeit halber sei gesagt, dass bei mir "pfadExe:= ExtractFilePath(ParamStr( 0 ));" ist. Ich weiss nicht genau was Du meinst @himitsu, ich bin ja im Arbeitsverzeichnis des delphi programmes.
|
AW: Zugriff auf txt files
Wenn TUhr die Lösung war, wann stimmte das Arbeitsverzeichnis nicht. :zwinker:
Beispiel: a.cmd mit
Delphi-Quellcode:
* im Explorer anklicken
echo %0
echo %cd% pause * in CMD, von irgendeinem Verzeichnis aus
Delphi-Quellcode:
C:\irgendwo\a.cmd
* in CMD, vorher mit CD ins Verzeichnis und dann
Delphi-Quellcode:
(oder in deiner main.exe
a.cmd
Delphi-Quellcode:
und
ParamStr(0)
Delphi-Quellcode:
anzeigen)
GetDir(0)
Mach auch mal in deinem Programm ChDir / SetCurrentDirectory oder ganz böse, pack einen TOpenDialog auf die Form, öffne ihn, wähle irgendein Verzeichnis aus und freue dich, dass dieses Mistding das Arbeitsverzeichnis verändert. Daher besser niemals einfach so blind irgendwelche relative Pfade benutzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz