Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: liste in datei specihern

  Alt 18. Jan 2007, 09:59
Tut mir leid, wenn ich dich verwirrt habe. Und du nervst auch ganz sicher nicht.

Natürlich kannst du auch eine verkettete Liste als CSV-Datei speichern:

Delphi-Quellcode:
type
  TArtikel = class
    Next: TArtikel;
    Nummer: Cardinal;
    Bezeichnung: String;
  end;

var
  ArtikelListe: TArtikel;

procedure Save(artikel: TArtikel; fn: TFileName);
var
  s, a: TStrings;
begin
  s := TStringList.Create;
  a := TStringList.Create;
  s.Add('"Nummer","Bezeichnung"'); // ...
  while Assigned(artikel) do
  begin
    a.Add(IntToStr(artikel.Nummer));
    a.Add(artikel.Bezeichnung);
    // ...
    s.Add(a.CommaText);
    a.Clear;
    artikel := artikel.Next;
  end;
  a.Free;
  s.SaveToFile(fn);
  s.Free;
end;

begin
  ArtikelListe := TArtikel.Create;
  with ArtikelListe do
  begin
    Nummer := 1;
    Bezeichnung := 'Handtuch';
    Next := TArtikel.Create;
  end;
  with ArtikelListe.Next do
  begin
    Nummer := 2;
    Bezeichnung := 'Mausefalle';
  end;
  Save(ArtikelListe, ChangeFileExt(ParamStr(0), '.txt'));
end.
Getippt und nicht getestet.

Ich habe das Listenelement TArtikel als class und nicht als record definiert, weil ich dann New() und Dispose() durch Create() und Free() ersetzen kann - was ich für didaktisch sinnvoll halte. Trotzdem habe ich versucht so nahe wie möglich an deiner über Zeiger verketteten Liste zu bleiben, damit du folgen kannst.

Freundliche Grüße
  Mit Zitat antworten Zitat