Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   EInifileException Fehler beim Schreiben der Inidatei (https://www.delphipraxis.net/161627-einifileexception-fehler-beim-schreiben-der-inidatei.html)

freedy 13. Jul 2011 11:04

EInifileException Fehler beim Schreiben der Inidatei
 
Hallo,

ich nutze schon seit einigen Jahren Ini-Dateien in meinem Programm, um die aktuellen Einstellungen (Fensterposition etc.) zu speichern. Seit ungefähr einer Woche bekomme ich beim Beenden des Programms einen Fehler, wenn die Ini-Datei geschrieben werden soll. Nachfolgender Codeauszug soll das Problem verdeutlichen:

Code:
var
  Ini : TInifile;
begin
  Ini := TInifile.Create(Inifilename); // Inifilename enthält einen definitiv gültigen Dateinamen
 
  Ini.WriteInteger('Form', 'Left', Left);
  Ini.WriteInteger('Form', 'Top', Top);
  Ini.WriteInteger('Form', 'Width', Width);

  Ini.WriteString('Form', 'Irgendwas', FIrgendwas);

  Ini.Free;
end;
Ich würde die Exception verstehen, wenn sie bei einem ungültigen Dateinamen aufträte. Der Fehler tritt aber zufällig bei einem der Schreibvorgänge auf (WriteInteger, WriteString), manchmal auch gar nicht.

Es scheint unabhängig von der Delphi-Version zu sein (getestet mit 2006 und XE), und es passiert bisher nur auf meinem Rechner (XP), hauptsächlich beim Testen aus der Entwicklungsumgebung heraus.

Gibt es andere, die ähnliche Probleme haben? Hat jemand eine Idee für einen Lösungsansatz? Die anderen Threads haben mir leider nicht wirklich geholfen. Einen doppelten Zugriff schließe ich mal aus. Die Ini-Datei sollte das doch an sich schon verhindern, oder?

Grüße
freedy

uligerhardt 13. Jul 2011 11:32

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Wenn ich im VCL-Quelltext nach EIniFileException suche, finde ich zwei Stellen, wo eine EIniFileException geworfen wird. Auf diese Zeilen würde ich je einen Haltepunkt setzen und, wenn dort angehalten wird, GetLastError anschauen (z.B.
Delphi-Quellcode:
SysErrorMessage(GetLastError)
im Auswerten/Ändern-Fenster (Strg-F7) eingeben).

HTH,
Uli.

s.h.a.r.k 13. Jul 2011 11:45

AW: EInifileException Fehler beim Schreiben der Inidatei
 
@uligerhardt: Wenn er die VCL debuggen will, dann muss er auch noch die Debug DCUs in den Projektoptionen unter dem Punkt Compilieren anschalten.

Des weiteren ist der Fehler auf ein Problem mit WritePrivateProfileString zurückzuführen und diese Methode wird unter EraseSection() bzw. unter WriteString() aufgerufen, was somit die Fehlerquelle schon mal ziemlich einschränkt.

Zitat:

Einen doppelten Zugriff schließe ich mal aus. Die Ini-Datei sollte das doch an sich schon verhindern, oder?
Doppelte Zugriffe im Sinne von Threads? Die VCL ist nicht threadsafe! Somit müsstest du das übernehmen.

uligerhardt 13. Jul 2011 12:21

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1111476)
@uligerhardt: Wenn er die VCL debuggen will, dann muss er auch noch die Debug DCUs in den Projektoptionen unter dem Punkt Compilieren anschalten.

Das hat man doch sowieso an, oder? :mrgreen:

EWeiss 13. Jul 2011 12:27

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Hatte das problem auch sehr oft allerdings unter Win7
Nachdem ich die Ini Dateien unter USER/..Roaming abgelegt habe hat sich das gegeben.

gruss

Gustav.R 13. Jul 2011 12:29

AW: EInifileException Fehler beim Schreiben der Inidatei
 
AntiVir aktiv?

Siehe http://forum.avira.com/wbb/index.php...hreadID=133224

GG

himitsu 13. Jul 2011 13:28

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Bei
Delphi-Quellcode:
Ini := TInifile.Create(Inifilename); // Inifilename enthält einen definitiv gültigen Dateinamen
kann definitiv niemals ein solcher Fehler aufteten.
(außer bei OutOfMemory ... also nichtmal mehr 8 Byte frei oder z.B. bei vorherrigen Speicherfehlern)

Wenn aber z.B. gleichzeitig ini.Write..., ini.Read... oder Dergleichen gleichzeitig auf die selbe Datei gehen, dann kann es schonmal knallen.
Genauso wenn keine Zugriffsrechte bestehen oder etwas Anderes den Zugriff blockt.

DeddyH 13. Jul 2011 13:49

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Es wäre vielleicht günstig gewesen, die Art der Exception zu nennen.

s.h.a.r.k 13. Jul 2011 14:21

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Zitat:

Zitat von DeddyH (Beitrag 1111507)
Es wäre vielleicht günstig gewesen, die Art der Exception zu nennen.

Meinst du den TE? Denn wenn ja, dann steht die Exception ja im Thread-Titel -> EIniFileException.

DeddyH 13. Jul 2011 14:23

AW: EInifileException Fehler beim Schreiben der Inidatei
 
Jetzt, wo Du es sagst :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz