Ich habe schon wieder ein derbes Problem!!
Ich möchte eine Liste füllen!
Als erstes wird die Funktion ListFüllen aufgerufen, in der dann ein neues Element gefüllt wird durch den Aufruf der Function NewOneListElement.
In der While Schleife suche ich die Dateinamen die in First(noch eine Liste) gespeichert sind heraus und schneide die Dateierweiterung(.txt) ab. Die einzelnen Dateinamen ohne Extension werden dann in einem String gespeichert, den ich nachher als Titel benutze.
Mein Problem liegt aber darin das an der Stelle {Ausgabe.Id := PPointers;} in der Function NewOneListElement einfach in der List ein Wert verändert wird obwohl ich an der Stelle garnix mit der List mache!
Ich kann mir das nicht erklären!!!!
Delphi-Quellcode:
function ListFüllen :POnelist;
var temp : PDatensatz;
Name : String;
Ausgabe : POnelist;
Begin
Name := '';
temp := first;
//Neues Element anlegen und Füllen
Ausgabe := NewOneListElement;
while temp <> Nil do
Begin
Name := Name + ExtractFileName(temp.info.Titel);
Name := StringReplace(Name, '.txt','',[]);
temp := temp.next;
end;
Ausgabe.Titel := Name;
//Ausgabe an das ende der Liste anfügen
Ausgabe.next := List;
List := Ausgabe;
ListFüllen := List;
end;
Delphi-Quellcode:
function NewOneListElement; :POnelist;
var Ausgabe : POnelist;
Begin
new(Ausgabe);
Ausgabe^.next := Nil;
Ausgabe^.daten := first;
inc(PPointers);
Ausgabe.Id := PPointers; //genau an dieser Stelle tritt der Fehler auf!!//
NewPlayElement := Ausgabe;
end;