![]() |
AW: Ini Datei wird nicht erstellt...
Das Wichtigste hier ist doch, dass der Name/Pfad zur Ini-Datei anscheinend nicht immer derselbe ist.
Das kann passieren, wenn der Pfad in jeder Routine immer wieder von Hand erstellt wird. Darum sollte zuerst einmal dieser Pfad über eine Funktion bereitgestellt werden. Ist der dann falsch, dann ist die Funktion falsch, aber der Rest bleibt gleich.
Delphi-Quellcode:
Überall, wo jetzt mit dem Ini-File gearbeitet werden soll einfach:
function GetMyIniFilename : string;
begin Result := ... end;
Delphi-Quellcode:
Die angebotenen Lösungen sind bestimmt nicht falsch, aber es geht ja erst mal um das Verständnis, wie etwas gelöst werden kann (gesichert immer der gleiche Dateiname).
LIni := TIniFile.Create( GetMyIniFilename );
try // mit dem Ini-File arbeiten finally LIni.Free; end; |
AW: Ini Datei wird nicht erstellt...
Zitat:
![]() ![]() Gruß K-H |
AW: Ini Datei wird nicht erstellt...
Sir Rufo,
das Lesen der Ini geht, wenn ich den Code direkt in die OnClick Ereignis Prozedur des Buttons schreibe. Es könnte also wohl an dem String Parameter der 'leseIni(IniName:string)' liegen. Das hier geht:
Delphi-Quellcode:
Das hier geht nicht:
procedure TForm1.Button1Click(Sender: TObject);
var ini:TIniFile; filename: String; ininame:String; begin ininame:='MyKredInif'; filename := extractfilepath(paramstr(0))+IniName+ '.ini';//'MyKredInif.ini'; //filename:=GetSpecialFolder(CSIDL_APPDATA)+'\'+Ininame+ '.ini'; Label1.Caption:=filename; ini := TIniFile.Create(filename); try Form1.Caption:=ini.ReadString('Sektion1', 'Name',''); Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',' '); Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', ''); Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', ''); Restsum:=ini.ReadString('Sektion3', 'Restsumme', ''); Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate',''); finally ini.Free; // Variable ini wieder freigeben end; // leseIni('MyKreditInif'); Label2.Caption:=Gesamtkreditsum; end;
Delphi-Quellcode:
Merkwürdiges Verhalten. Übrigens funktioniert die 'LeseIni(ininame:string)' auch auf Windows XP nicht.
Type
TForm1 = class(TForm) ... public { Public-Deklarationen } procedure leseIni(IniName:string); end; .... .... procedure TForm1.leseIni(IniName:string); var ini:TIniFile; filename: String; begin filename := extractfilepath(paramstr(0))+IniName+ '.ini'; //filename:=GetSpecialFolder(CSIDL_APPDATA)+'\'+Ininame+ '.ini'; Label1.Caption:=filename; ini := TIniFile.Create(filename); try Form1.Caption:=ini.ReadString('Sektion1', 'Name',''); Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',' '); Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', ''); Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', ''); Restsum:=ini.ReadString('Sektion3', 'Restsumme', ''); Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate',''); finally ini.Free; end; end; procedure TForm1.Button1Click(Sender: TObject) begin ... leseIni('MyKreditInif'); Label2.Caption:=Gesamtkreditsum; end; |
AW: Ini Datei wird nicht erstellt...
Wie oft hast du denn Form1?
|
AW: Ini Datei wird nicht erstellt...
Code:
ininame:='MyKredInif';
Code:
Fällt dir was auf?
leseIni('MyKreditInif');
Tip: Mit Konstanten wär das nicht passiert. MfG Dalai |
AW: Ini Datei wird nicht erstellt...
Zitat:
Aber ein Trost dabei ist, dass ich was über UAC gelernt. |
AW: Ini Datei wird nicht erstellt...
Das war ja auch schon meine Vermutung in #28
|
AW: Ini Datei wird nicht erstellt...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz