Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zugriff auf txt files (https://www.delphipraxis.net/212348-zugriff-auf-txt-files.html)

DelphiUser123 28. Jan 2023 18:38

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:
ShellExecute(0, 'open', PChar(pfadExe + '\main\main.exe'), nil, nil, SW_SHOW);
Dann werden die txt- Dateien nicht aktualisiert. Das Problem bleibt bestehen wenn ich 'open' mit 'runas' ersetze.
Was könnte hier das Problem sein?

Vielen Dank für Antworten.

TUhr 28. Jan 2023 19:14

AW: Zugriff auf txt files
 
Hallo,

gib mal das Arbeitsverzeichnis der main.exe als fünften Parameter an.

MfG

himitsu 28. Jan 2023 19:56

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.

DelphiUser123 30. Jan 2023 21:24

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.

himitsu 30. Jan 2023 22:04

AW: Zugriff auf txt files
 
Wenn TUhr die Lösung war, wann stimmte das Arbeitsverzeichnis nicht. :zwinker:

Beispiel:

a.cmd mit
Delphi-Quellcode:
echo %0
echo %cd%
pause
* im Explorer anklicken
* in CMD, von irgendeinem Verzeichnis aus
Delphi-Quellcode:
C:\irgendwo\a.cmd

* in CMD, vorher mit CD ins Verzeichnis und dann
Delphi-Quellcode:
a.cmd
(oder in deiner main.exe
Delphi-Quellcode:
ParamStr(0)
und
Delphi-Quellcode:
GetDir(0)
anzeigen)



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 15:25 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