Hola, solicito ayuda tras mil y un intentos y no encontrar una explicación lógica ni una solución al problema.
Pretendo mostrar en un Memo el contenido de un fichero cualquiera (sea *.exe, *.rar, etc; NO *.txt), y digo un memo como puedo decir un simple Showmessage.
Bien, al lío, probando este simple código:
Código Delphi
[-]procedure TForm1.Button3Click(Sender: TObject);
var
F: file;
ByteAct: byte;
Res: string;
begin
assignfile(F, 'c:\fichero.rar'); reset(F, 1);
while not eof(F) do
begin
blockread(F, ByteAct, 1);
Res := Res + char(ByteAct);
end;
closefile(F);
Memo1.Text := Res;
end;
Del modo anterior sólo se muestran los primeros bytes, por qué???
Para mostrarlos todos basta hacer esto:
Código Delphi
[-]procedure TForm1.Button3Click(Sender: TObject);
var
F: file;
ByteAct: byte;
Res: string;
i: integer;
begin
assignfile(F, 'c:\fichero.rar'); reset(F, 1);
while not eof(F) do
begin
blockread(F, ByteAct, 1);
Res := Res + char(ByteAct);
end;
closefile(F);
for i := 1 to length(Res) do
Memo1.Text := Memo1.Text + Res[i];
end;
Pero, volviendo al primer código, si se supone que estoy almacenando todo el fichero en la variable Res, por qué coj... sólo escribe los
primeros bytes? en cambio recorriendolo byte a byte sí los escribe todos, qué sentido tiene? alguna solución?
Gracias por su atención.