Hallo Leute!
Wir haben in der Schule mit Listen angefangen. Soweit ja ganz toll, nur verstehe ich nicht so ganz was ich da immer falsch mache.
Unser Lehrer gibt aber auch keine klaren Auskünfte. Es gibt öfter Probleme, die nicht sein müssten. Falsche Funktionen etc...
Nun zu meinem Problem. Wie kann ich dem Pc klarmachen, dass er Alle Elemente der Liste durchgeht bis zum letzten, dass dann auf Nil zeigt?
Ist die Deklaration mit dem Anker überhaupt richtig?
Delphi-Quellcode:
type Pzeiger= ^Tmensch;
Tmensch = record
n:string;
z:pzeiger;
end;
var anker:pzeiger;
procedure TForm1.FormCreate(Sender: TObject);
begin
new(anker);
anker.z:=nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
var pak,pvor,pan:pzeiger;
begin
if anker.z=nil then
begin
new(pak);
anker^.z:=addr(pak);
pak^.n:=edit1.text;
pak^.z:=nil;
end
else begin
pak:=anker^.z;
while pak<>nil do begin
pak:=pak^.z;
end;
end;
end;
Anmerkung:
n im Record steht für einen Namen.
Ich weis moment is der Quelltext noxh recht unübersichtlich, aber vll kann mir ja jemand sagen wo der Fehler liegt. Das Programm soll einfach namen in eine Liste schreiben. Imer ans Ende, wenn der aktuelle Datensatz nicht das letzte Element is soll er von Anfang an die Liste durchgehn bis zum letzten also bis der Zeiger auf Nil zeigt.