Autor Beitrag
Andilope
Hält's aus hier
Beiträge: 2

Win 2000 / RedHat Linux
D5 Prof
BeitragVerfasst: Fr 05.12.03 16:54 
Hallo Zusammen!

Ich habe ein Programm geschrieben, das sich bei jedem Systemstart per Registry starten soll. Dabei liest das Programm aus einer ini Datei, die im Stammordner der exe Datei liegt, weitere Infos.
Beim Systemstart startet sich das Programm auch wunderbar, jedoch legt es im Ordner "C:\Dokumente und Einstellungen\Administrator" eine neue ini Datei an, statt aus der vorhandenen zu lesen.

Wie kann ich das Programm dazu bringen aus der ini Datei im Stammverzeichnis zu lesen?

Vielen Dank!

Andi
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Fr 05.12.03 20:30 
Hallo,

ist mir neu, dass das nicht klappt, aber du kannst ganz einfach rausfinden, WO sich die EXE befindet:
ausblenden Delphi-Quelltext
1:
IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)))					

Ich denke du gibt die INI so an:
ausblenden Delphi-Quelltext
1:
'Irgendwas.ini'					

Daraus machst du also:
ausblenden Delphi-Quelltext
1:
IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'Irgendwas.ini'					

Nun müsste der Pfad immer stimmen.

Was die einzelnen Befehle machen:
ParamStr(0): ist der Programmparameter (0 = 1. Parameter). Der erste Parameter ist immer der Dateiname mit Pfad
ExtractFilePath: gibt den Pfad zurück, schneidet also den Dateinamen (die EXE-Datei) ab
IncludeTrailingPathDelimiter() sorg dafür, dass der Backslash am Ende IMMER da ist. Lässt sich auch anders lösen, aber ich mache das halt immer so.

_________________
Life is a bad adventure, but the graphic is really good!
Lhid
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 831



BeitragVerfasst: Fr 05.12.03 20:45 
Meinung und mich grundlegend verändert.--> Beiträge gelöscht


Zuletzt bearbeitet von Lhid am Sa 26.09.09 09:39, insgesamt 1-mal bearbeitet
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Fr 05.12.03 21:05 
Hallo,

wenn du bereit bist, in deutschen Sätzen zu schreiben, bin ich bereit, dir zu antworten :wink:

_________________
Life is a bad adventure, but the graphic is really good!
Andilope Threadstarter
Hält's aus hier
Beiträge: 2

Win 2000 / RedHat Linux
D5 Prof
BeitragVerfasst: Sa 06.12.03 20:16 
Huhu!
Danke für die schnellen Antworten.

Ich hab den Tip mit

IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)))

ausprobiert. Bei mir kommt jedoch ein Compilerfehler, der mir sagt dass er IncludeTrailingPathDelimiter nicht kennt. Doch weil Andreas Pfau geschrieben hat, dass das nur für die Sicherstellung des Backslash wichtig ist, hab ichs weggelassen und vor 'blablabla.ini' selber noch einen Backslash eingefügt.
Jetzt funktionierts auch tatsächlich so wie ichs will. Meine Frage ist jetzt nur ob das gewährleistet ist, dass bei der Funktion ExtractFilePath der Slash auch sicher weggelassen wird. Falls nicht, würden ja später 2 Slash in der Pfadangabe stehen.

CiaoCiao, Andi
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 06.12.03 20:41 
Hallo,

ja, man KANN es weglassen, denn wenn du dir mal die implementierung von ExtractilePath() anschaust, und bedenkst, siehst du, dass man es eigentlich nicht braucht. Eignetlich Blödsinn das einzubauen... na ja, habe ich mir halt mal so angewöhnt. Lass es weg :roll:

_________________
Life is a bad adventure, but the graphic is really good!