Hallo!
Ich habe ein Problem. Die Suche nach einer Lösung hier im Forum war bis jetzt erfolglos. Ich habe nichts konkretes gefunden das mir weiterhelfen konnte.
Folgendes:
Ich hab ein Programm das einige Daten in eine ini-Datei speichert und wenn notwendig wieder ausliest.
Das habe ich zum Test mal so gelöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| ... var Form1: TForm1;
const IniFileName = 'C:\data.ini';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var inid: TIniFile; begin inid:= TIniFile.Create(IniFileName); inid.WriteString('Section','Eintrag1', Edit1.Text); inid.WriteString('Section','Eintrag2', Edit2.Text); inid.Free; end;
end. |
soweit kein Problem. Das funktioniert
Jetzt sollte es aber für jeden User eine eigene ini Datei abspeichern und wieder laden können. Ich hab mich ein wenig schlau gemacht und bin auf CSIDL
msdn.microsoft.com/l...ence/enums/csidl.asp gekommen.
Somit wird die ini-Datei z.B. in den Anwendungsdaten-Ordner des jeweiligen User gespeichert (zumindest ab Windows2000

).
Das speichern und laden der ini wollte ich folgendermassen lösen:
zuerst finde ich den Pfad für den Ordner Anwendungsdaten heraus
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var pIdL: PItemIDList; Path: Array [0..Max_Path] Of Char; Begin SHGetSpecialFolderLocation (0, CSIDL_APPDATA, pIdL); SHGetPathFromIDList (pIDL, Path); Label1.Caption := (Path); |
hat auch funktioniert.
Aber wie weiter? Ich habe folgendes probiert:
Delphi-Quelltext
1: 2: 3: 4: 5:
| const IniFileName = Label1.Caption;
const IniFileName = 'C:\data.ini'; |
Kann ich das überhaupt so machen oder benötige ich hier einen anderen Lösungsweg?
Danke für euer Hilfe!
mfg bobel
Moderiert von
Motzi: Code- durch Delphi-Tags ersetzt.