Cita:
Empezado por elmago00
gracias por responder Nelson.
veras es que lo intento hacer es abrir el archivo, y editarlo automáticamente, buscando la dirección y la cantidad de caracteres que le siguen. luego reemplazarlos por los que yo pongo. por eso decía si podía hacer lo mismo pero almacenarlo en una variable TStringGrid, sin usar el componente.
|
Hola elmago00.
En el hilo anterior había interpretado que querias realizar cambios, de allí que usé un componente que te permitiera hacerlos interactivamente, pero si deseas guardarlo en un archivo de texto para trabajar sobre él, también podrías hacer:
Código Delphi
[-]
procedure DumpFile(aFileName:TFileName; const BPF: Word);
var
c, i, r: integer;
ascii: string;
linea: string;
aux: Byte;
begin
with TMemoryStream.Create do
try
LoadFromFile(aFileName);
Seek(0, soBeginning);
with TStringList.Create do
try
c:= 0;
while c < Size do
begin
linea:= IntToHex(c, 8)+' ';
ascii:= EmptyStr;
i:= 0;
while (i < BPF) and (i+c < Size) do
begin
Read(aux, SizeOf(Byte));
linea:= linea + IntToHex(aux,2) + ' ';
if aux in [$0..$20,$80..$90] then aux:= Ord('.');
ascii:= ascii + Chr(aux);
Inc(i);
end;
linea:= linea + ascii ;
Add(linea);
Inc(c, BPF);
Inc(r);
end;
SaveToFile(ExtractFilePath(aFileName) +
ChangeFileExt(ExtractFileName(aFileName), '') + '.HEX');
finally
Free;
end;
finally
Free;
end;
end;
Uso:
Código Delphi
[-]
DumpFile('c:\windows\notepad.exe',16);
El código te genera el archivo en la misma carpeta del archivo orígen, con el mismo nombre, de extensión .HEX y contiene los mismos datos que veías en el StringGrid.
Saludos