![]() |
Datei binär einlesen
Wie kann ich von einer Datei die ersten 32 Byte (256 Bit) binär einlesen, und als Integer, Byte, String... (irgendwas womit man weiterarbeiten kann) benutzen??? Es muss egal sein, was für Werte da drin stehen, es muss immer klappen!
|
Re: Datei binär einlesen
Zitat:
Delphi-Quellcode:
So einfach.
type
TMy32Bytes = array[0..31] of Byte; var My32Bytes: TMy32Bytes; begin with TFileStream.Create('C:\Temp\SimpleFile.dat', fmOpenRead) do try Read(My32Bytes, SizeOf(My32Bytes)); // jetzt kannst Du mit den 32 Bytes machen was Du willst finally Free; end; // auch hier kannst Du mit den 32 Bytes machen was Du willst end; |
ok, für den speziellen fall reicht das vollkommen,
aber generell: kann man auch die bytes einzeln einlesen, und dann immer 1 weitergehen, oder 8 oder sowas? |
Moin Nailor,
schau Dir doch einfach mal die Methode TFileStream.Read an. Das müsste Deine Frage eigentlich beantworten. |
Ich hab die ganze DelphiHilfe nach "Read" durchsucht, aber nix gefunden, was mir zu helfen schien :(
|
Re: Datei binär einlesen
JA.
Delphi-Quellcode:
var
I, OneByte: TMy32Bytes; begin with TFileStream.Create('C:\Temp\SimpleFile.dat', fmOpenRead) do try for I := 0 to 31 do begin Read(OneByte, SizeOf(OneByte)); ShowMessage(IntToStr(OneByte)); end; finally Free; end; end; |
Moin Nailor,
es geht ja um die Methode Read von TFileStream, ergo: Erst mal nach TFileStream suchen, und dann oben auf die Methoden klicken. Dann geht ein Fenster auf mit allen Methoden, die TFileStream kennt, und Read ist dabei. |
d.h. er rückt die position in der datei automatisch nach dem lesen vor?
auf jeden fall schon mal vielen dank!!! :bouncing4: :hello: |
Noch eine Frage, bevor ich mir jede Menge Arbeit mach:
Gibt es eine andere möglichkeit, zwei Dateien zu vergleichen, ohne beide komplett Byte für Byte einzulesen und jeweils zu vergleichen? |
Moin Nailor,
wenn es Dir genügt mit einiger Wahrscheinlichkeit festzustellen, ob zwei Dateien gleich sind, könntest Du es mit einer CRC 32 Prüfsumme über beide Dateien hinbekommen. 100%ig ist das naheliegender Weise natürlich nicht, da es ja "nur" (2 hoch 32) - 1 verschiedene Prüfsummen gibt, aber wohl bestimmt mehr verschiedene Dateien. Wenn es sicherer sein soll ginge es wohl auch mit einer MD5 Prüfsumme, wie es z.B. die Kerio Personal Firewall macht, um manipulierte/ersetzte Dateien aufzuspüren. In keinem Falle wirst Du wohl darum herumkommen beide Dateien komplett zu lesen, nur musst Du sich nicht zwingend Byte für Byte vergleichen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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