AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Record als Datei speichern

Ein Thema von Willie1 · begonnen am 26. Mai 2020 · letzter Beitrag vom 30. Mai 2020
 
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Record als Datei speichern

  Alt 27. Mai 2020, 20:53
Hallo

persönlich wäre ich immer dafür, die Daten einzeln zu schreiben. Mit Filestream und TReader und Writer geht das ganz gut und einfach. Da hast du für jeden Datentypen schon ne Methode und brauchst dich um viele Dinge nicht zu kümmern. Ich finde das auch sehr verständlich und einfach lesbar.

Delphi-Quellcode:
var FS:TFileStream;
    Writer:TWriter;
begin
  fs:=TFileStream.Create(PfadDateiName,fmCreate);
  try
    Writer:=TWriter.Create(fs,const_BufferGroesse);
    try
      //Version schreiben
      Writer.WriteInteger(const_Version_aktuell);

      //Datenschreiben
      Writer.WriteString(s);
      Writer.WriteInteger(i);
      Writer.WriteDate(Datum);

    finally
      writer.Free;
    end;
  finally
    fs.free;
  end;
end;
laden:
Delphi-Quellcode:
var FS:TFileStream;
    Reader:TReader;
    Version:integer;
begin
  if FileExists(PfadDateiName) then
    begin
      fs:=TFileStream.Create(PfadDateiName,fmOpenRead);
      try
        Reader:=TReader.Create(fs,const_BufferGroesse);
        try
          Version:=Reader.ReadInteger;

          if Version=... then
            ...

        finally
          Reader.Free;
        end;
      finally
        fs.free;
      end;
    end;
end;
Wenn du eine Liste speicherst, dann halt zuerst die Anzahl und dann per Schleife die Daten.

Ich schreib als erstes immer eine Version mit rein. Beim auslesen kannst du die dann auswerten und so auch das laden "älterer DateiVersionen" unterstützen oder laden "neuerer Versionen" blocken. Wenn du mal doch dein record änderst haste auch weniger Probleme.

und ich würde es nicht als record machen, gleich als Klasse mit Savetostream oder savetofilemethoden.

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz