Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern enthält Fehler? Wie anders speichern? (https://www.delphipraxis.net/61432-speichern-enthaelt-fehler-wie-anders-speichern.html)

arest 21. Jan 2006 13:13


Speichern enthält Fehler? Wie anders speichern?
 
Hallo an alle, ich bin dabei ein weiteres Adressbuch zu programmieren. Bei der ersten Version habe ich die Daten in eine Datei speichern lassen, die danach mit dem Editor lesbar war. Hier der Quelltext dazu:

Delphi-Quellcode:
   procedure TForm1.Speichern1Click(Sender: TObject);
   var Datf:File of TDaten;
   Daten1:TDaten;
   begin
      aenderung:=false;
      Edit1.Clear;
      if (dateiname='')
      then begin
              Speichernunter1Click(Sender);
           end
      else begin
              if (anfang.nachfolger <> ende)
              then begin
                      lauf:=TKnoten.Init;
                      Assignfile(Datf,dateiname);
                      Rewrite(Datf);
                      lauf:=anfang;
                      repeat lauf:=lauf.nachfolger;
                         daten1:=lauf.Daten;
                         write(Datf,daten1);
                      until (lauf.nachfolger=ende);
                      closefile(Datf);
                   end;
           end;
   end;
Mein Problem ist, dass er mir immer eine Fehlermeldung bringt, und zwar oben bei dem Festlegen der Variable Datf:File of TDaten... "Typ 'TDaten' benötigt Finalization - nicht im Dateityp erlaubt" Diese Meldung wird mir ausgegeben, allerdings hat genau dieser Code bei meinem ersten Adressbuch funktioniert. Was ist da los?
Da ich allerdings auf eine andere Art des speicherns umsteigen möchte, würde ich mich freuen, wenn mir noch jemand einen Tipp dazu gibt, wie ich z.B. eine Datei erstelle, die später in Excel eingelesen wird.

Mfg arest

marabu 21. Jan 2006 13:28

Re: Speichern enthält Fehler? Wie anders speichern?
 
Die Fehlermeldung ist eigentlich leicht zu erklären. Du wirst in TDaten wahrscheinlich den Typ string verwenden - oder einen anderen dynamischen Typ, dessen life cycle durch den Compiler bestimmt und durch die Laufzeitumgebung überwacht wird. Du darfst nur primitive Typen verwenden. Dazu zählen ShortStrings. Oder du musst auf static arrays ausweichen.

Im Hinblick auf Excel kannst du entweder nach BIFF oder nach CSV Ausschau halten. BIFF wird zum Beispiel im Platform SDK erklärt, aber auch hier in der DP ist es mir schon begegnet. CSV findest du bei wotsit. Die neueren Versionen von Excel sollten eigentlich auch mit XML zurecht kommen. Zu XML gibt es hier sogar ein eigenes Forum.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz