Hola elmago00.
No alcanzo a distinguir bién la imágen pero te hice un ejemplo de visor hexadecimal:
Código Delphi
[-]
implementation
procedure DumpFile(aFileName:TFileName; SG: TStringGrid; const BPF: Word);
var
c, i, r: integer;
ascii: string;
aux: Byte;
begin
with TMemoryStream.Create do
try
LoadFromFile(aFileName);
SG.Options:= SG.Options - [goVertLine] - [goHorzLine];
SG.Font.Name:= 'Courrier';
SG.Font.Size:= 10;
SG.ColWidths[0]:= 80;
SG.Cells[0,0]:= 'Offset(h)';
SG.ColCount:= BPF+2;
SG.ColWidths[SG.ColCount-1]:= SG.Canvas.TextWidth('X') * BPF;
SG.Cells[SG.ColCount-1,0]:= 'ASCII';
for i:= 0 to BPF-1 do
begin
SG.ColWidths[i+1]:= 30;
SG.Cells[i+1,0]:= IntToHex(i,2);
end;
SG.RowCount:= Size div BPF;
Seek(0, soBeginning);
c:= 0;
r:= SG.FixedRows;
while c < Size do
begin
SG.Cells[0, r]:= Format('%s',[IntToHex(c, 8)]);
ascii:= EmptyStr;
i:= 0;
while (i < BPF)and(i+c < Size) do
begin
Read(aux, SizeOf(Byte));
SG.Cells[i+1,r]:= IntToHex(aux,2);
if aux = 0 then aux := 46;
ascii:= ascii + Chr(aux);
Inc(i);
end;
SG.Cells[SG.ColCount-1,r]:= Format('%s',[ascii]);
Inc(c, BPF);
Inc(r);
end;
finally
Free;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.CommaText:= '8,10,16,24,32,48,64,128,255';
ComboBox1.ItemIndex:= 2;
end;
procedure TForm1.btnFileClick(Sender: TObject);
begin
with OpenDialog1 do
begin
Filter:= '*.*';
if Execute then
begin
Caption:= FileName;
DumpFile(FileName, StringGrid1,
StrToInt(ComboBox1.Items[ComboBox1.ItemIndex]) );
end;
end;
end;
salida:
Mas si tu inquietud es a fines prácticos, ya existen excelentes editores hexadecimal freeware como:
HxD - Freeware Hex Editor and Disk Editor.
Saludos