Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#19
  Alt 16. Okt 2002, 21:00
Hallo Jan,

hier ein paar Kommentare:

1. Du solltest einem Memo nur Daten über

Code:
Memo1.Lines.Add(...);
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.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat