AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EInifileException Fehler beim Schreiben der Inidatei
Thema durchsuchen
Ansicht
Themen-Optionen

EInifileException Fehler beim Schreiben der Inidatei

Ein Thema von freedy · begonnen am 13. Jul 2011 · letzter Beitrag vom 13. Jul 2011
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 11:45
@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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#2

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 12:21
@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?
Uli Gerhardt
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 12:27
Hatte das problem auch sehr oft allerdings unter Win7
Nachdem ich die Ini Dateien unter USER/..Roaming abgelegt habe hat sich das gegeben.

gruss
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#4

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 12:29
AntiVir aktiv?

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

GG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.745 Beiträge
 
Delphi 12 Athens
 
#5

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 13:28
Bei 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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Jul 2011 um 13:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#6

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 13:49
Es wäre vielleicht günstig gewesen, die Art der Exception zu nennen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 14:21
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#8

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 14:23
Jetzt, wo Du es sagst
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 14:32
TIniFile/ TMemIniFile benötigen die Datei exklusiv. Diese wird vermutlich aber von einem anderen Prozess benutzt.

Delphi-Quellcode:
procedure Wait (var N: integer);
var
  fTime: Cardinal;
begin
  fTime:= GetTickCount;
  repeat until (GetTickCount-fTime) > 500;
  N:= N+1;
end;


function IsFileReadyForOpen (const FileName: string): boolean;
var
  N, IO: integer;
  F: TextFile;
begin
  N:= 0;
  AssignFile(F, FileName);
  repeat
    {$I-} Reset(f); {$I+}
    IO:= IOResult;
    if IO <> 0 then Wait(N);
  until ((IO = 0) or (N = 10));
  Result:= (IO = 0);
  if Result then
    closeFile(f)
  else
    MessageDlg(Application.ExeName+': '+FileName+' ['+SysErrorMessage(IO)+'].', mtWarning, [mbOK], 0);
end;


var
  Ini : TInifile;
begin
  if not IsFileReadyForOpen (Inifilename) then Exit;

Geändert von Bjoerk (13. Jul 2011 um 14:55 Uhr) Grund: Code
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#10

AW: EInifileException Fehler beim Schreiben der Inidatei

  Alt 13. Jul 2011, 14:41
Wie schon erwähnt wurde ruft WriteString auch nur WritePrivateProfileString auf. Im MSDN findet sich dann Folgendes dazu:
Zitat:
Return Value

If the function successfully copies the string to the initialization file, the return value is nonzero.

If the function fails, or if it flushes the cached version of the most recently accessed initialization file, the return value is zero. To get extended error information, call GetLastError.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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