ruewa hat geschrieben:Was mich an Deinem Konstrukt erheblich mehr stört, ist, daß Du das IniFile in den luftleeren Raum hinein katapultierst! Der Compiler akzeptiert das, aber wo bleibt Dein IniFile, sobald Du den "with ... do"-Block verlassen hast? Wenn Du Deinem IniFile nicht einmal eine Variablendeklaration spendierst, kannst Du es, sobald Du den Block verlassen hast, nie wieder ansprechen! Wie willst Du Dein TIniFile-Objekt denn alleine schon freigeben, selbst wenn Du es hinterher nie mehr brauchen solltest?
Wie von Maik81SE demonstriert so:
Code: Alles auswählen
with TIniFile.Create(fFilename) do begin
try
Temp:= TStringlist.Create;
try
ReadSections(Temp);
...
finally
Temp.Free;
end;
finally
Free;
end;
end;
Ich benutze with/do häufig vor allem mit records und um Index Adressierung zu optimieren. Ich wünschte mir zwar, dass Free Pascal eine sichere "with" Variante mit expliziter Referenz hätte. MSElang wird ein ensprechendes Konstrukt aufweisen.