Einzelnen Beitrag anzeigen

Obelisk2k5

Registriert seit: 20. Jun 2010
14 Beiträge
 
Delphi 2 Desktop
 
#1

Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]

  Alt 20. Jun 2010, 16:43
Erstmal hallo alle Miteinander!

Ich versuche gerade, mich in den Umgang mit Dateien in Delphi einzuarbeiten,
blicke da aber nicht ganz durch.

Ich habe ein Element, das ein packed record ist.

Mehrere solcher Elemente sollen als typisierte Dateien
gespeichert und wieder ausgelesen werden können.

Ich bin mir nicht einmal sicher, womit ich am besten anfange;
speichern oder laden, habe aber erstmal mit letzterem angefangen.

Ich weise die Datei einer Dateivariablen zu,
welchen ich dann zum lesen öffne.

Nun möchte ich aus der Datei die einzelnen Elemente auslesen und mit
einer Funktion (die ich bereits geschrieben habe) in einem Array von dem
packed record-Typ speichern.

Nur komme ich nicht darauf, wie ich am besten anstellen kann.
Ich weiß nicht einmal, wie genau die packed records in einer typisierten
Datei gespeichert werden und wie man dann drauaf zugreigen kann.
Kann ich jedes Record als ganzes auslesen und dann in einer whileschleife (bis EoF(Datei))
jedes Element mit der passenden Funktion sofort weiter verarbeiten?

Und wie genau geht das?
readln liest ja soweit ich weiß´lediglich eine Zeille Text aus,
nun weiß ich aber nicht, ob das dann ein ganzes (konvertiertes) Element
oder lediglich ein Teil des packed Records ist.

Hier ein Auszug aus meinem Code:

Delphi-Quellcode:
function readFromFile (const Filename: string): boolean;
var
  datavar: file of TElement;
  
begin
  try
  AssignFile(datavar, Filename);
    try
      Reset(datavar);
       while not EOF(datavar) do
        begin
           //hier weiß ich nicht weiter, außer,
           //dass readfromFile je nach Erfolg auf true oder false gesetzt wird
           //(prozedur zum übernehmen ins Array liefert boolischen Wert)
        end;
    finally
      closeFile(datavar);
    end
  except
    on E: EInOutError do showmessage('Datei kann nicht gelesen werden.')
  end
end;
Schonmal danke für alle Antworten.

Geändert von SirThornberry (21. Jun 2010 um 08:54 Uhr)
  Mit Zitat antworten Zitat