Thema: Delphi Fehlersuche bei Listen

Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Fehlersuche bei Listen

  Alt 6. Dez 2006, 21:17
Delphi-Quellcode:
PROCEDURE FuegeHintenAn (Titel,Genre,Regisseur,Jahr,Schauspieler:STRING; VAR kopf,L : ListenZeiger);
VAR
  p : ListenZeiger;
BEGIN
  NEW(p);
  p^.Titel:=Titel;
  p^.Genre:=Genre;
  p^.Regisseur:=Regisseur;
  p^.Jahr:=Jahr;
  p^.Schauspieler:=Schauspieler;
  p^.Next:=NIL;

  IF Not IstListeLeer(L) THEN
    L^.next:=p; // Vorgängerelement^.next bekommt die Adresse des neuen Listenelementes
  else
    kopf:=p; // erstes Element in der Liste

  L:=p; // Listenzeiger zeigt auf das neue Listenelement

END;
Delphi-Quellcode:
PROCEDURE listeLaden(L:Listenzeiger);
var a,b,c,d,e:STRING;
    k,anz:INTEGER;
begin
  assignfile(test,'test.txt');
  reset(test);
  anz:=filesize(test);
FOR k:=0 TO (ANZ) DO
    BEGIN
      readln(test,a);
      readln(test,b);
      readln(test,c);
      readln(test,d);
      readln(test,e);
      FuegeHintenAn(a,b,c,d,e,kopf,l);
    END;
  closefile(test);
  // kopf:=l; das ist falsch, weil Du da den Kopf immer auf das letzte Element zeigen läßt
               // der Kopf sollte auf das erste Element zeigen

  {ausgabeformular.TitelAUS.Items.Add(a);
  ausgabeformular.GenreAUS.Items.Add(b);
  ausgabeformular.JahrAUS.Items.Add(c);
  ausgabeformular.RegiseurAUS.Items.Add(d);
  ausgabeformular.SchauspielerAUS.Items.Add(e);}

end;
Habe etwas an Deinem Code geändert in der Hoffnung das es nun besser läuft.

kopf -> erstesElement, erstesElement^.next -> zweitesElement,zweitesElement^.next -> nil ; nil = Listenende

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat