![]() |
IniFile - Auslesen funktioniert nicht
Hallo, ich habe ein Problem mit IniFiles. Ich möchte einen Wert in einer Sektion auslesen, das funktioniert allerdings nicht.
Mein Code:
Delphi-Quellcode:
Die IniDatei sieht vollgendermassen aus:
try
IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); len := IniDatei.ReadInteger('Global', 'EQ', 0); ShowMessage(IntToStr(len)); finally IniDatei.Free; end;
Delphi-Quellcode:
Weiss einer Rat, alle Variablen sind Deklariert doch in len steht immer 0 (Null)!
[Global]
EQ=1 Was mach ich falsch, ich wüsste nicht, was ich anderst gemacht haben sollte als sonst... |
Re: IniFile - Auslesen funktioniert nicht
Das Create vor dem try setzen und Inifile muss als TIniFile deklariert sein in der Prozedur bei den variablen. Besser im Finally ein FreeAndNil(IniFile).
|
Re: IniFile - Auslesen funktioniert nicht
Deine Code funktioniert fehlerfrei.
Delphi-Quellcode:
Könnte es sein das es an dieser Zeile liegt:
procedure TForm1.Button1Click(Sender: TObject);
var iniDatei : TIniFile; len : Integer; begin try IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); len := IniDatei.ReadInteger('Global', 'EQ', 0); ShowMessage(IntToStr(len)); finally IniDatei.Free; end; end;
Delphi-Quellcode:
ChangeFileExt(ParamStr(0)) ändert den Dateinamen der Exe (also z.B. Projekt1.exe) in Projekt1.ini. Bist du sicher das diese Datei existiert?
IniDatei := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
|
Re: IniFile - Auslesen funktioniert nicht
Da soll er natürlich ExtractFilePath nehmen, dennoch gehört das Create nicht ins try...
|
Re: IniFile - Auslesen funktioniert nicht
Zitat:
|
Re: IniFile - Auslesen funktioniert nicht
Zitat:
|
Re: IniFile - Auslesen funktioniert nicht
Zitat:
Überleg doch mal, was passiert, sollte eine Exception im ctor ausgelöst werden. Der Ini-Variablen wird kein Pointer zugewiesen, da der Code sofort ins Finally springt. Und da Delphi keinen lokalen Variablen initialisiert, knallt es höchstwahrscheinlich dann beim Aufruf von Free, weil IniDatei sonstwohin zeigen kann. |
Re: IniFile - Auslesen funktioniert nicht
Zitat:
den Dateinamen auf der HD. Aber wie wieter oben schon einmal bemerkt ist es wohl besser dies zu nehmen:
Delphi-Quellcode:
Funktioniert aber nur wenn Deine ini Datei auch im Verzeichnis der exe liegt.
IniDatei := TIniFile.Create(ExtractfilePath(ParamStr(0))+ChangeFileExt(ParamStr(0), '.ini'));
Grüße Klaus |
Re: IniFile - Auslesen funktioniert nicht
Klaus, hast du deinen Vorschlag einmal getestet?
Gruß Hawkeye |
Re: IniFile - Auslesen funktioniert nicht
@Hawkeye
nein :o( aber jetzt schon und da ist etwas dopplet gemoppelt. In ChangeFileExt ist der komplette Pfad schon enthalten. Daher kann der Vorschlag vergessen werden. Danke und Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 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