Hallo Jan,
hier ein paar Kommentare:
1. Du solltest einem Memo nur Daten über
hinzufügen. Der Versuch direkt auf Lines zuzugreifen ist sehr gefährlich, weil ein Memo zunächst einmal gar keine Lines hat.
Mit jedem Add addierst du eine Zeile. Danach kannst du auf den n-ten Eintrag über Lines[n-1] zugreifen, aber erst dann!
2. Beim Schreiben ist die Kernzeile des möglichen Problems:
Code:
udaten.Karte.Person:=anderedaten.lesepos;
Woher kommt und was ist
anderedaten.lesepos?
3. Da du ja gar keinen Index angelegt hast, musst du die Datei sequentiell durchlaufen:
Code:
Datei:='c:\urlaub.ddb';
assign(f,Datei);
reset(f);
while not EOF(f) do
begin
read(f, satz);
if satz.ID = gesuchteID then
....
end;
Ein Index ist eine Tabelle, in der die Zuordnung von IDs und zugehöriger Satznummer in der Datei abgelegt wäre. Z.B. ID 5 steht an Stelle 17 in der Datei. Hättest du diese Info, könntest du einfach den 17. Satz lesen und hättest den Datensatz zu Person 5. In deinem Fall ist aber ein sequentieller Durchlauf wie oben beschrieben sinnvoll.
So das war's zunächst für heute.