Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFileStream und EOF? (https://www.delphipraxis.net/35933-tfilestream-und-eof.html)

Pseudemys Nelsoni 13. Dez 2004 21:49


TFileStream und EOF?
 
hi,

ich habe bis jetzt nie mit filestreams gearbeitet... mag mir jemand sagen ob das ding eine EOF routine besitzt oder sowas?

Luckie 13. Dez 2004 21:54

Re: TFileStream und EOF?
 
Delphi-Quellcode:
while fs.pos <= fs.size do

Pseudemys Nelsoni 13. Dez 2004 21:55

Re: TFileStream und EOF?
 
danke ^^

jim_raynor 13. Dez 2004 22:42

Re: TFileStream und EOF?
 
Ist aber eine vergleichsweise langsame Funktion. Besser ist es den Rückgabewert von Read zu begutachten, da dort die Anzahl der tatsächlich gelesenen Bytes zurückgegeben werden.

Luckie 13. Dez 2004 22:55

Re: TFileStream und EOF?
 
Jupp:
Delphi-Quellcode:
repeat
      BytesRead := fs.Read(Buffer[0], BUFFERSIZE);
      Move(BuffToHex(Buffer)[1], s[i * (HexLength * BUFFERSIZE) + 1],
        HexLength * BytesRead);
      Inc(i);
      Progressbar1.StepIt;
      Application.ProcessMessages;
    until BytesRead < BUFFERSIZE;
Aber er hatte nach EOF gefragt und das ist das Konstrukt, was dem am nächsten kommt.

Pseudemys Nelsoni 13. Dez 2004 23:05

Re: TFileStream und EOF?
 
ich hab mich schon immer gefragt wozu so ein buffer eigentlich ist, kann man daten nie direkt (alle) auslesen?

was ist wenn ich z.b so eine binäre datei parsen möchte, indem zb das wort "hallo" mit drin steckt und der buffer nur bis "...hal" kommt ?

ich würde gerne lernen wie das ganze so funktioniert, wie die daten in der datei vorliegen und wie man sie parsen kann usw.

jim_raynor 13. Dez 2004 23:15

Re: TFileStream und EOF?
 
Sicherlich kannst du die Datei auch komplett in einen Buffer laden. Dieser muss dann aber groß genug sein. Ist zum Beispiel immer schlecht, wenn man größere Dateien mit einmal bearbeitet. Ist halt ne Frage des Arbeitsspeicher verbrauches.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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