Registriert seit: 30. Nov 2005
Ort: München
5.774 Beiträge
Delphi 10.4 Sydney
|
Re: Fehlersuche bei Listen
6. Dez 2006, 22: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
|
|
Zitat
|