![]() |
IniFile wird nicht erstellt!
Hallo zusammen,
bei mir wird kein IniFile erstellt und ich hab nach einigem Suchen keine Lösung gefunden. Kann mir hier weiter geholfen werden? Um einen IniFile zu erstellen benutze ich folgenden Code:
Delphi-Quellcode:
Die Variable "Ini" als eine globbale Variable zu deklarieren hat auch nicht geklappt.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var Ini: TIniFile; begin Ini:= TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); try Ini.WriteString( 'VideoSaveDir', 'VideoSaveDir', VideoSaveDir); Ini.WriteString('Zwischenspeicher', 'Zwischenspeicher', Zwischenspeicher); Ini.WriteString('Arbeitsverzeichnis', 'Arbeitsverzeichnis', Arbeitsverzeichnis); Ini.UpdateFile; finally end; Ini.Free; VideoFilelist.Free; Videopuffer:= nil; VideoInfo:= nil; end; // Hab's dann so versucht: Ini:= TIniFile.Create('C:\DasVerzeichnis\Meine.ini'); // Aber auch hier passiert nichzs - keine *.ini Weis jemand Rat, bin nach 4 Stunden erfolglosem Suchen, lesen und probieren recht entnervt :roll: Auf dem PC bin ich der Chefe, also fehlende Rechte können es nicht sein, klappt ja mit Textfiles und anderen auch (XP-Delphi2009). Danke schon mal und noch einen ruhigen Abend. |
Re: IniFile wird nicht erstellt!
Welches Betriebssystem? Und warum ist das Ini.Free; nicht im finally-Block wo es hingehört?
Deine Sektionen heißen genauso wie die Schlüssel, das finde ich etwas ungewöhnlich. Eventuell liegt das Problem darin begründet. |
Re: IniFile wird nicht erstellt!
Schalt sonst mal die Debug DCUs an und setze einen Haltepunkt auf die FormClose Routine (wird sie überhaupt aufgerufen?)
Viele Grüße |
Re: IniFile wird nicht erstellt!
Zitat:
|
Re: IniFile wird nicht erstellt!
Hallo,
Delphi-Quellcode:
Inis gehören nichts ins Exe-Verzeichnis.
Ini:= TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
Dort besteht unter deinem XP in der Regel kein Schreibrecht, ab Vista geht das gar nicht mehr (jaja, stimmt nicht ganz)
Delphi-Quellcode:
Hast du in C:\DasVerzeichnis Schreibrecht ?
Ini:= TIniFile.Create('C:\DasVerzeichnis\Meine.ini');
Existiert das Verzeichnis überhaupt. Hast du nach dem Create auch etwas in die Ini reingeschrieben ? Ini.Free vergessen ? Heiko |
Re: IniFile wird nicht erstellt!
Besser mit
![]() |
Re: IniFile wird nicht erstellt!
Zitat:
|
Re: IniFile wird nicht erstellt!
Zitat:
Teste es eventuell ohne Ini.UpdateFile, aber das sollte es auch nicht sein. Unter Win NT ff hat UpdateFile sowieso keine Bedeutung. Das einzige was sein kann, sind tatsächlich Schreibrechte in dem Ordner. Benutzt du eventuell Vista? Bei Vista denkt man oft, daß man Adminrechte hat, hat man aber keine. Das einzige was noch sein könnte, aber das kann man am Code nicht erkennen, ist, daß das Programm hier aussteigt
Delphi-Quellcode:
Wenn aber VideoSaveDir ein String ist, dann gibt es keinen Grund dafür. Denn eine Ini wird erst in dieser Zeile angelegt.
Ini.WriteString( 'VideoSaveDir', 'VideoSaveDir', VideoSaveDir);
|
Re: IniFile wird nicht erstellt!
So etwas würde ich eher in OnCloseQuery ausführen statt in OnClose.
Davon abgesehen: Der Code ist soweit funktionsfähig, auch wenn das Free wie schon gesagt wurde ins finally gehört. Da Delphi ja die Exe in dem Ordner erstellen konnte, die Rechte also kein Problem sind, bleibt nur: Zitat:
Andere Möglichkeit: Das Programm stürzt in OnCloseQuery ab oder wird via Halt oder so abgestürzt, dann wird OnClose natürlich nicht ausgeführt. |
Re: IniFile wird nicht erstellt!
Ein Breakpoint sollte hier Klarheit schaffen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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