AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf txt files

Ein Thema von DelphiUser123 · begonnen am 28. Jan 2023 · letzter Beitrag vom 30. Jan 2023
Antwort Antwort
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#1

Zugriff auf txt files

  Alt 28. Jan 2023, 19:38
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.
  Mit Zitat antworten Zitat
TUhr

Registriert seit: 25. Sep 2021
21 Beiträge
 
#2

AW: Zugriff auf txt files

  Alt 28. Jan 2023, 20:14
Hallo,

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

MfG

Geändert von TUhr (28. Jan 2023 um 20:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zugriff auf txt files

  Alt 28. Jan 2023, 20:56
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.
$2B or not $2B
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#4

AW: Zugriff auf txt files

  Alt 30. Jan 2023, 22:24
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zugriff auf txt files

  Alt 30. Jan 2023, 23:04
Wenn TUhr die Lösung war, wann stimmte das Arbeitsverzeichnis nicht.

Beispiel:

a.cmd mit
Delphi-Quellcode:
echo %0
echo %cd%
pause
* im Explorer anklicken
* in CMD, von irgendeinem Verzeichnis aus C:\irgendwo\a.cmd
* in CMD, vorher mit CD ins Verzeichnis und dann a.cmd (oder in deiner main.exe ParamStr(0) und 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.
$2B or not $2B

Geändert von himitsu (30. Jan 2023 um 23:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17: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