Entwickler-Ecke

Dateizugriff - Varibaler Pfad im Programm für Install


Heino - Di 03.06.03 08:59
Titel: Varibaler Pfad im Programm für Install
Moin, Moin

Wenn ich ein Programm mit einem Installprogramm weitergebe, weiss ich ja nicht in welchem Verzeichnis der Anwender es installiert. Wie verfahre ich in meinem Projekt jetzt z.B. mit folgender Zeile

Delphi-Quelltext
1:
InFile.LoadFromFile('c:\Hallo.txt') ?                    

In Visual Basic gab es die Möglichkeit folgenden Code zu benutzen:

Open App.Path & "\" & "Hallo.txt" For Input As #1 ohne Unterverzeichnis oder
rtfText.LoadFile App.Path & "\Rtf\" & "Hallo.txt" mit Unterverzeichnis.

Danke Heino

Moderiert von user profile iconTino: Absätze entfernt & Delphi-Tags hinzugefügt.


Tweafis - Di 03.06.03 09:07

Hi,
Schau dir doch Mal ParamStr(0) an, außerdem noch


patrick - Di 03.06.03 09:28

was dir Tweafis damit sagen will in konkretem code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function ....???
var dir:string;
begin
...
dir:=extractfilepath(application.exename); 
//extrahiert den pfad deiner exe-datei

InFile.LoadFromFile(dir+'Hallo.txt'); 
//lädt die datei hallo.txt aus dem verzeichnis in dem die exe datei liegt.
...
end;

mit diesem verfahren sind auch unterordner möglich, indem du statt 'hallo.txt' deinen unterordner einbeziehst z.b.

Delphi-Quelltext
1:
InFile.LoadFromFile(dir+'unterverzeichnis\hallo.txt'                    


ich habe den code jetzt aus dem kopf geschrieben ich bin mir mit application.exename nicht 100%ig sicher


Tweafis - Di 03.06.03 10:14

Erstell zum beispiel mal ne Form, setz 8 Labels drauf und mach bei OnFormCreate:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Label1.Caption := ParamStr(0);
Label2.Caption := ExtractFileName(ParamStr(0));
Label3.Caption := ExtractFileDir(ParamStr(0));
Label4.Caption := ExtractFilePath(ParamStr(0));
Label5.Caption := ExtractFileDrive(ParamStr(0));
Label6.Caption := ExtractFileExt(ParamStr(0));
Label7.Caption := ExtractRelativePath('C:\Programme\', ParamStr(0));
Label8.Caption := ExtractShortPathName(ParamStr(0));