| Autor |
Beitrag |
Lurnon
      
Beiträge: 33
|
Verfasst: 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 
      
Beiträge: 33
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 09.10.06 18:50
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
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: 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
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 09.10.06 18:51
_________________ 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++
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 09.10.06 19:05
Ist das wirklich das Problem?
Ich denke eher, das Problem ist, das im Programm
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:
Delphi-Quelltext 1:
| AssignFile(spei, ExtractFilePath(ParamStr(0)) + '\prog.sko'); |
Und das muss natürlich dann überall hin.
|
|
Lurnon 
      
Beiträge: 33
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.10.06 19:51
Lurnon 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...
|
|
|