Was mir auffällt ist ebenfalls das StrToInt(ini.ReadString...) Aber das hat Popov ja schon erklärt.
Zweitens weist Du 3x der ini mit Create was neues zu ohne ein Free dazwischen zu machen. Hab das noch nicht probiert, aber könnte ebenfalls Problematisch werden.
Generell: Für jedes Create auch ein Free einbauen.
Wie wärs denn einfach mit 2 ini-Variablen? inidat und initemp
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var i:integer; Datum:string; inidat, iniTemp:Tinifile; begin inidat := TIniFile.Create(ProgDir + 'Archiv.dat'); For i:= 1 to inidat.ReadInteger('Daten','Anzahl',0) do begin Datum:=inidat.ReadString('Daten',IntToStr(i),'fehler'+IntToStr(i)); Datenbank.Lines.Add(inidat.ReadString('Dateninhalt',Datum,'')+ ' ' + Datum); initemp:=TIniFile.Create(ProgDir + Datum + '.temp') //Hier solltest Du noch irgendwas in die initemp reinschreiben... initemp.free; end; inidat.free; end; |
Ungetestet!
Über das Datum:=inidat.ReadString('Daten',IntToStr(i),'fehler'+IntToStr(i)); verhinderst Du auch, daß Du eine Datei "\.temp" anlegst.
Übrigends bestehen Dateiextensions normalerweise aus 3 Buchstaben, nicht aus 4!
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."