Zitat:
In deiner geposteten Version öffnest du die Datei anhand ihres
UNC-Pfads allerdings neu
Nein.. Ich bearbeite sie anhand von INI.Filename sie ist also schon geöffnet.
Siehe INI := TIniFile.Create(UserAppDataDir + bla..bla..);
Zitat:
Am Ende hast du genau so im Prinzip zwei Schleifen über alle Zeilen, wie ich auch. Allerdings eine Liste mehr: Deine als Puffer, und die Stringlist als Ziel und zum Speichern. Den Puffer halte ich für vermeidbar.
Darüber kann man streiten richtig
Zitat:
// Datei zum Lesen öffnen
Assignfile(ParseFile, Filename);
reset(ParseFile);
// Datei schließen
CloseFile(ParseFile);
// Datei überschreiben
StringList.SaveToFile(Filename);
Ich mache nicht mehr zugriffe da die Datei bereits geöffnet ist.
Oder täusche ich mich da?
Kommt drauf an was du darunter verstehst.
Ich öffne sie einmal und bearbeite die List dann anhand der geöffneten Datei.
Anschließend wird sie auch nur einmal abgespeichert.
Es geht um das doppelte und dreifache öffnen und schließen der gleichen Datei vom Datenträger.
Warum das wenn sie schon offen ist?
Einmal öffnen einmal schreiben und einmal schließen.
Zitat:
Edit: Ich habe hier kein Delphi zur Hand, aber ich kann mir vorstellen, dass man den Text eines TIniFile relativ direkt in eine TStringList bekommt, ohne den Umweg über das vorherige Speichern zu gehen - welches deine Variante ja auch tut, so wie sie hier steht. Das wäre dann wirklich elegant.
Ja dann wäre es ideal..
gruss