So, lieber Braincode, teste mal den folgenden Code:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
const
Count = 1024;
var
Datei: TFileStream;
Buffer: array[0..(Count-1)] of Char;
l,i: Word;
Result: TCaption;
begin
if not OpenDialog1.Execute then Exit;
Memo1.Clear;
Result := '';
Datei := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
try
while true do
begin
l := Datei.Read(Buffer, Count);
if l <> Count then
begin
if not (l = 0) then
for i := 0 to (l - 1) do
Result := Result + Buffer[i];
Break;
end;
Result := Result + Buffer;
end;
finally
Datei.Free;
end;
Memo1.Text := Result;
end;
sollte eigentlich jede Datei brav einlesen. Nur nicht Count auf 0 stellen, oder andere idiotische Sachen. Ähm, so Sachen wie Fortschrittsanzeige oder so, kann man wenn man Lust hat auch noch einbauen.
PS: nochmal zu deinem Ursprungscode:
r := datei.Read(buffer[1],sizeof(buffer));
Scheint mir ein wenig verdächtig.
Edit: ich nenne nie mehr eine Variable "l" (kleines L) das ist ja schlimm zu lesen, wenn die Zahlen keine andere Farbe bekommen.