du kannst den Filestream verwenden, dann geht es nur etwas anderst:
Delphi-Quellcode:
var LStream: TFileStream;
buf:array of byte;
begin
SetLength(LBuffer, 10);
LStream := TFileStream.Create(DeinDateiname, fmOpenReadWrite);
//10 Zeischen aus der Datei lesen
LStream.Read(LBuffer[1], 10);
//zurück an position 0 springen
//10 Zeischen zurück schreiben
LStream.Write(LBuffer[1], 10);
LStream.Free;
end;
//der Inhalt des Array of Byte beinhaltet nach dem Lesen die ersten 10 Zeichen der Datei als Byte-Zahlen, also 0-255. Die kannst du dann noch weiter in 1en und 0en oder alternativ Hex-Zeichen zerlegen:
Delphi-Quellcode:
function hex(b:byte):string;
var
hexes:string='0123456789ABCDEF';
begin
result:=hexes[1+ (b div 16)]+ hexes[1+(b mod 16)];
end;
es gibt noch unendlich viele andere Möglichkeiten, den Code auszulesen, ich persönlich halte den filestream nicht für die eleaganteste.
z.B. gibts da noch die file:
Delphi-Quellcode:
var
f:file of {jederbeliebigeTyp ausser Strings und Klassen, wir nehemn file of byte, um einzelne 1-Byte-große zahlenwerte
auszulesen} byte;
r:integer;
buf:array [0..1023] of byte;
begin
assignfile(f,dateiname);
//jetzt Datei öffnen:
reset(f); //um existierende datei zu öffnen
rewrite(f); //um existierende datei zu überschreiben oder neue zu erstellen
//jetzt lesen/schreiben
blockread(f {Dateivariable, aus der gelesen wird},buf{buffer-Speichervariable in die gelesen wird},1024{anzahl der zu lesenden Bytes},r{Hier eine Integervariable angeben, in der nach dem lesen gespeichert ist wie viel der zu lesenden Bytes tatsächlich gelesen wurden});
seek(f,position); //springe in der Datei an eine bestimmte Position (0 = Anfang, filesize(F) = Ende, 1200 = hinter dem 1200. Byte in der Datei)
blockwrite(f {Dateivariable, in die geschrieben wird},buf{buffer-Speichervariable aus der geschrieben wird},1024{anzahl der zu schreibenden Bytes},r{Hier eine Integervariable angeben, in der nach dem schreiben gespeichert ist wie viel der zu schreibenden Bytes tatsächlich geschrieben wurden});
filepos(f) //gibt die Position zurück an der die Datei sich gerade befindet
//letztendlich Datei wieder schliessen
closefile(f);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates