Zitat von
Daniel Schuhmann:
Zitat von
Progman:
wenn er sie nicht findet, kommts zum Crash in der ntdll.dll, jedenfalls meistens ;)
Nein, beim Lesen nicht, nur beim Schreiben.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Ini: TIniFile;
SL: TStringList;
begin
Ini := TIniFile.Create('NUL');
SL := TStringList.Create;
Ini.ReadSections(SL);
SL.Free;
Ini.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create('NUL');
Ini.WriteString('Test', 'Test1', 'Val1');
Ini.Free;
end;
Nur bei der Schreibroutine kracht es. Wenn beim Lesen ein Fehler auftritt, wird der Standardwert angenommen.
Also wer auch einen illegalen und verbotenen Dateinamen verwendet, da ist es kein Wunder das es kracht. Afaik sollte es sogar hier durch den Dateinamen bei beiden Aufrufen knallen.
Siehe auch
MSDN: File Names, Paths, and Namespaces dort unter Basic Naming Conventions. Warum sollte jedem DOS/Shell Nutzer bekannt sein.