Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi File of Byte (https://www.delphipraxis.net/93549-file-byte.html)

Stillmatic 7. Jun 2007 11:35


File of Byte
 
Ich habe die Aufgabe eine bestehende Datei auf gültigkeit(der Größe) zu Prüfen, dazu soll man die Datei(of record) als file of byte öffnen!!!
Kann mir einer von euch sagen wie das gehen soll?

pszopp 7. Jun 2007 11:51

Re: File of Byte
 
Hallo Stillmatic,

soll nur die Größe der Datei oder auch der Inhalt der Datei geprüft werden?
Bei der Kontrolle des Inhalts sollten besser TStream-Objekte (genauer TFileStream oder TMemoryStream) aus der Unit Classes benutzt werden.

Ein byte-weises Einlesen einer Datei sollte so funktionieren:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var lFile : file of Byte;
    lData : Byte;
begin
  AssignFile(lFile, 'C:\TestFile.bin');
  Reset(lFile);

  try
    while (not EOF(lFile)) do begin
      Read(lFile, lData);
      // hier irgendwas mit lData anstellen!
    end; // while

  finally
    CloseFile(lFile);
  end; // finally
end;
PS: Habs zwar kompiliert aber nicht getestet!


Gruß,
pszopp

DeddyH 7. Jun 2007 12:02

Re: File of Byte
 
Ich denke, es ist eher so etwas gemeint (keine Fehlerbehandlung implementiert):
Delphi-Quellcode:
function IsFileSizeValid(const FileName: string): Boolean;
type TTestRec = record
  bla: string[30];
  blubb: integer;
end;
var f: file of byte;
    iSize: integer;
begin
  AssignFile(f,FileName);
  Reset(f);
  iSize := FileSize(f);
  CloseFile(f);
  Result := iSize mod SizeOf(TTestRec) = 0;
end;

Stillmatic 7. Jun 2007 12:38

Re: File of Byte
 
Jo kool!!!

Ich versteh nur nicht ganz wann eine Datei auf korrekte Größe getestet werden sollte??
Vorm Öffnen oder Speichern??

Wo würde man am schlausten die Abfrage machen???

DeddyH 7. Jun 2007 12:48

Re: File of Byte
 
Wenn die Dateigröße nicht stimmt, was passiert wohl beim Lesen des letzten Datensatzes? Und wie willst Du die Größe einer Datei ermitteln, die Du noch nicht gespeichert hast? Ich hoffe, das beantwortet Deine Fragen :mrgreen: .


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