Einzelnen Beitrag anzeigen

Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#2

Re: Daten aus großen Binärdateien lesen

  Alt 26. Mai 2004, 19:00
1. Binärdateien liest man normalerweise nicht mit read(f,bytevar); sondern mit wie folgt

Delphi-Quellcode:
Procedure ConvertFiles(Var Source,Dest:String);
Var Fsource,FDest:File;
    bRead,bWrit:Integer;
    i:Integer;
    Buf:Array[0..1023]of Byte;
Begin
 AssignFile(FSource,Source);Filemode:=FmOpenRead;Reset(Fsource,1); //Quell-Datei lesen
 AssignFile(FDest,Dest);Filemode:=FmOpenWrite;Rewrite(FDest,1); //Ziel-Datei erstellen

 Repeat
  BlockRead(FSource,Buf,Sizeof(buf),bRead);
  For I:=0 to bRead do buf[i]:=buf[i] xor 255; // "Konvertierung"
  BlockWrite(FDest,Buf,bRead,Bwrit);
 Until (bread=0) or (bRead<>bWrit);

 CloseFile(FDest);
 CloseFile(FSource);
end;
^^ (Splatter-Source... nur zur Verdeutlichung, Keine Laufgarantie !!!)

Wenn du mit Typisierten Dateien Arbeitest bricht Eof beim ersten Aufkommen von $1A auf zu lesen
($1A war/ist das Hier-ist-die-Datei-zuEnde-Zeichen)
daher bei Binär Dateien besser mit Blockread/Write arbeiten ..

wenn du als Ausgabe eine Textdatei hast kannst du aus FDest eine TextFile machen und wie gehabt mit Write[ln]/Read[ln] arbeiten...
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat