Beim Speichern musst du einfach nur andersherum denken...
Für DupeString musst du die
Unit StrUtils in die Uses-Clause aufnehmen.
Delphi-Quellcode:
Var
flStrList : TStringList;
DeinFileName : String;
Zahl : Integer;
Begin
If Not Savedialog1.Execute Then Exit;
DeinFileName := Savedialog1.FileName;
flStrList := TStringList.Create;
Try
flStrList.Assign(SynMemo1.Lines);
Zahl := 0;
While zahl < pred(flStrList.Count) Do
Begin
flStrList[Zahl] :=
IntToStr(succ(Zahl)) +
DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) +
flStrList[Zahl];
inc(Zahl);
End;
flStrList.SaveToFile(DeinFileName);
Finally
FreeAndNil(flStrList);
End;
... wenn du den Text nicht unbeding perfekt eingerückt (hier 7 Stellen) brauchst, kannst du anstatt "DupeString..." auch ein #32 nehmen.
Nachtrag: Wenn du den Text ausrichtest, musst du beim Einlesen diesen Wert verwenden (anstatt "Pos(#32, flStrList[Zahl])")
-> sonst sieht man die ganzen Leerzeichen.