Thema: FormatINI

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: FormatINI

  Alt 18. Mai 2015, 22:02
Warum eigentlich umständlich AssignFile+ReadLn und nicht LoadFromFile?

Delphi-Quellcode:
StringList.LoadFromFile(Filename);
StringList.Text := ReplaceStr(StringList.Text, sLineBreak + '[', sLineBreak + sLineBreak + '[');
StringList.SaveToFile(Filename);
Delphi-Quellcode:
// vielleicht auch sicherheitshalber so?
StringList.LoadFromFile(Filename);
StringList.Text := ReplaceStr(ReplaceStr(StringList.Text, sLineBreak + sLineBreak, sLineBreak), sLineBreak + '[', sLineBreak + sLineBreak + '[');
StringList.SaveToFile(Filename);
War ein Vorschlag für Verbesserungen bin ich immer offen.
Zumal sie in dem Fall auch kürzer sind.
Auf der anderen Seite warum erst speichern .. dann laden und anschließend wieder speichern.
Macht irgendwie keinen Sinn den die Daten sind ja vorhanden.

Ich wollte halt meine Ini Formatieren damit sie besser zum lesen ist.
Und das Schnipsel wollte ich veröffentlichen falls es jemand braucht.

Letztendlich führen viele Wege zum ziel.

Zitat:
Gibt es einen Unterschied im Ergebnis zu diesem etwas knapperen hier?
Delphi-Quellcode:
procedure FormatINI(aFilename: String);
var
   f: TStringlist;
   i: Integer;
begin
   f := TStringlist.Create;
   f.LoadFromFile(aFilename);

   // Remove blank lines
   i := 0;
   while i < f.Count do
   begin
     if Length(Trim(f[i]))=0 then
       f.Delete(i)
     else
       inc(i);
   end;
   // Add blank lines before section headers
   i := f.Count-1;
   while i>0 do
   begin
     if (Length(Trim(f[i]))>0) and (Trim(f[i])[0]='[') then
       f.Insert(i, '');
     dec(i);
   end;

   f.SaveToFile(aFilename);
   f.Free;
end;
JO warum soll ich erst leere Zeilen löschen ist unnötig.
Wird bei mir in einem rutsch erledigt.
bzw.. werden ignoriert wenn es leere Zeilen gibt.
Und auch hier unnötige zugriffe auf die Datei warum nochmalig öffnen wenn sie schon geöffnet ist?

gruss

Geändert von EWeiss (18. Mai 2015 um 22:33 Uhr)
  Mit Zitat antworten Zitat