So, jetzt habe ich das Programm fertig. Es ging mir eigentlich nur darum eine binäre Datei einzulesen und darzustellen. Ich poste es einfach mal, die Frage kommt ja immer wieder, wie man eine Datei binär einliest. Es macht eigentlich nichts sinnvolles, aber eventuell kann es ja jemand mal brauchen.
Delphi-Quellcode:
type
TMyByteArray = array of byte;
function BuffToHex(ByteArray: TMyByteArray): string;
var
i: Integer;
s: String;
foo: string;
begin
Setlength(foo, length(ByteArray) * 10);
for i := 0 to length(ByteArray) - 1 do
begin
s := '$'+IntToHex(ord(ByteArray[i]), 8) + ' ';
Move(s[1], foo[i * 10 + 1], length(s));
end;
result := foo;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
Buffer: TMyByteArray;
BytesRead: Longint;
s: String;
i: Int64;
begin
i := 0;
SetLength(Buffer, 100);
fs := TFileStream.Create('G:\MP3s\Beatles\Beatles - Blue Jay Way.mp3',
fmOpenRead);
SetLength(s, fs.size*10);
Progressbar1.Max := fs.Size div 100;
try
repeat
BytesRead := fs.Read(Buffer[0], 100);
Move(BuffToHex(Buffer)[1], s[i*10+1], 10);
Inc(i);
Progressbar1.StepIt;
Application.ProcessMessages;
until BytesRead < 100;
Memo1.Text := s;
finally
FreeAndNil(fs);
end;
end;