Autor Beitrag
Lurnon
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 33



BeitragVerfasst: So 08.10.06 15:43 
Hallo,
ich habe mir ein Programm (Konsolenanwendung) mit dem ich auf eine Datei zugreife, in welche die Pfade zu einzelnen exen gespeichert sind, um diese schneller öffnen zu können. Dazu habe ich mir auch einen Editor geschrieben, mit dem ich die in der Datei gespeicherten Exe-Pfade ändern kann. Jedoch musste ich feststellen, dass mein Editor nur Exen einspeichert die im gleichen Ordner liegen wie die Datei, in die gespeichert wird und ich habe keine Ahnung warum.
Darum meine Bitte: Könnte sich jemand bitte meinen Quellcode (siehe unten) anschauen und mir helfen, den Fehler zu finden?


So schnell noch die Steuerung:
Startkonsole, ist meine Anwendung zum schnell starten
Edit.exe, ist der Edior. Es gibt 5 Kategorien in die Exen einsortiert werden können, die Namen hierfür sind Variabel und können durch einen Doppellklick auf die Dunkelgrauen Zellen (oben) geändert werden. In jede Kategorie passen bis zu 10 Exe-Dateien hinein, diese können durch einen Doppelklick auf eine weiße Zelle geändert werden. Dazu öffnet sich dann ein kleiner Dialog. Oben muss der Titel hinein, unter welchem Namen die Exe angezeigt werden soll. Unten gehört der Pfad einschließlich der Exe (Name+.exe) rein, eine Exe kann schnell hinzugefügt werden, indem man Doppelt auf das zweite weiße Eingabefeld klickt. Ich glaube der Rest erklärt sich von selbst.


Ich hoffe es erbarmt sich einer meiner und hilft mir, dafür schon mal danke,

Lurnon
Einloggen, um Attachments anzusehen!
Lurnon Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 33



BeitragVerfasst: Mo 09.10.06 18:47 
So, habe jetzt selbst herausgefunden, woran es liegt. Der Standartpfad ändert sich im Laufe des Programmes, daher ist er beim Speichern nur dann richtig wenn es der Pfad zum Startkonsolenordner ist und damit nur, wenn als letztes die Konsolen-oder edit.exe eingespeichert wurde.

Daher meine neue Frage, ist es irgendwie möglich den aktuellen Pfad herauszufinden, wenn ja wie?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.10.06 18:50 
ausblenden Delphi-Quelltext
1:
ExtractFilePath(ParamStr(0))					

//EDIT: Erklärung was ich meinte:
Das ist der Pfad zur Exe.


Zuletzt bearbeitet von jaenicke am Mo 09.10.06 19:06, insgesamt 2-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 09.10.06 18:50 
neue Frage , neuer Thread !

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 09.10.06 18:51 
user profile iconjaenicke hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
ExtractFilePath(ParamStr(0))					

bringt den Pfad der Exe, nicht den aktuellen!
ausblenden Delphi-Quelltext
1:
GetDir (0,...);					

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Odeng
Hält's aus hier
Beiträge: 14

Win XP
Delphi, Perl, VB, C++
BeitragVerfasst: Mo 09.10.06 18:52 
Titel: zwei Minuten in der Hilfe gewühlt...
Hallo,
Habe gerade mal in der Hilfe gewühlt und folgendes gefunden

Die Prozedur ermittelt das aktuelle Verzeichnis.

Unit

System

Kategorie

Dateiverwaltung

Delphi-Syntax:

procedure GetDir(D: Byte; var S: string);

Beschreibung

Unter Windows setzt GetDir den Parameter S auf das aktuelle Verzeichnis auf dem im Parameter D angegebenen Laufwerk. D kann einen der folgenden Werte annehmen:

Wert Laufwerk

0 Vorgabe
1 A
2 B
3 C

Hinweis: GetDir führt keine Fehlerprüfung durch. Wenn z.B. der ungültige Wert 5 (J) angegeben wurde, liefert S J:\ zurück, als es das Stammverzeichnis des ungültigen Laufwerks wäre.
Unter Linux gibt GetDir im Parameter S das aktuelle Arbeitsverzeichnis zurück. Der erste Parameter (nur aus Kompatibilitätsgründen mit älteren CLX-Versionen enthalten) wird ignoriert.


Viel Spaß damit
Oliver Dujardin

_________________
__________________
Es gibt nichts Gutes, außer man tut es :-)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.10.06 19:05 
Ist das wirklich das Problem?
Ich denke eher, das Problem ist, das im Programm
ausblenden Delphi-Quelltext
1:
AssignFile(spei, '.\prog.sko');					

steht. Und das (und wo es sonst noch vorkommt natürlich ebenso) würde heißen, dass die Datei im aktuellen Arbeitsverzeichnis liegt. Aber sie liegt ja wohl im Anwendungsverzeichnis.
Deshalb muss es so heißen:
ausblenden Delphi-Quelltext
1:
AssignFile(spei, ExtractFilePath(ParamStr(0)) + '\prog.sko');					

Und das muss natürlich dann überall hin.
Lurnon Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 33



BeitragVerfasst: Di 10.10.06 16:56 
Danke an alle, dass Problem kann als gelöst betrachtet werden.

Ach ja jaenicke, du hattest mich anscheinend nicht richtig verstanden, lag wahrscheinlich an meiner Formulierung. :)
Ich meinte genau das, was du gesagt hast.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 10.10.06 19:51 
user profile iconLurnon hat folgendes geschrieben:
Ach ja jaenicke, du hattest mich anscheinend nicht richtig verstanden, lag wahrscheinlich an meiner Formulierung. :)
Ich meinte genau das, was du gesagt hast.

Doch hatte ich, auch wenn die Formulierung etwas missverständlich war... ;-)
Mein
Zitat:
Ist das wirklich das Problem?
bezog sich auf die Vorschläge mit GetDir, die da kamen...