![]() |
Re: Typorisierte Datei wird nicht gelesen
Hab das ganze so veränder das der array als var übergeben wird:
Delphi-Quellcode:
[OT]
procedure FunktionenLesen(FileName: String; var f :TFunktionenArray);
var Datei: TFunktionenDatei; i, count: integer; begin AssignFile(Datei, FileName); // Datei zuweisen Reset(Datei); // Datei öffnen count:= FileSize(Datei) div sizeof(TFunktion); setlength(f, count); for i:=0 to count -1 do begin Seek(Datei, i); // Datensatzzeiger an gewünschte Position // bewegen Read(Datei, f[i]); // die aktuellen Werte lesen end; CloseFile(Datei); // Datei schließen end; Ne ich meinte recordierte Dateien :) [/OT] |
Re: Typorisierte Datei wird nicht gelesen
Hi.
FileSize liefert die Anzahl der Datensätze, die integer division durch RecordSize (relative große Zahl) ergibt 0 als Count ... Grüße vom marabu |
Re: Typorisierte Datei wird nicht gelesen
Delphi-Quellcode:
Nachgeschoben noch einige Erklärungen:
procedure FunktionenLesen(FileName: String; var f :TFunktionenArray);
var Datei: TFunktionenDatei; i, count: integer; begin AssignFile(Datei, FileName); // Datei zuweisen Reset(Datei); // Datei öffnen count:= FileSize(Datei); setlength(f, count); for i:=0 to count -1 do begin Read(Datei, f[i]); // die aktuellen Werte lesen end; CloseFile(Datei); // Datei schließen end; seek(datei,i) brauch man nur wenn man sich frei in der Datei bewegen will. Du wolltest die Datei von vorne bis hinten lesen. Mit reset hast Du Dich bereits an den Dateianfang bewegt. Ein read bewegt Dich immer einen einen Datensatz weiter. FileSize liefert bei einer typisierten Datei die Anzahl der Datensätze und nicht die Größe der Datei in Bytes. Grüße Klaus |
Re: Typorisierte Datei wird nicht gelesen
Das war es := Danke :D
|
Re: Typorisierte Datei wird nicht gelesen
Wenn die Datei ganz gelesen werden soll, dann geht das auch so:
Delphi-Quellcode:
Gruß Hawkeye
procedure FunktionenLesen (const FileName: String; var f: TFunktionenArray);
begin with TFileStream.Create(FileName, fmOpenRead) do begin SetLength (f, Size div SizeOf(f[0])); if (Size > 0) then Read (f[0], Size); Free; end; end; |
Re: Typorisierte Datei wird nicht gelesen
Gar kein Resourcen-Schutzblock um bei einem Lesefehler immernoch die Datei zu schliessen bzw. den FileStream freizugeben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 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