如题
下面这段程式是把二进制文件以16进制显示在MEMO中.但如何以ASCII来显示呢.
请高手指导一下啊.帮我改改.
我的目的就是把苹果电脑里的二进制文件 打开后转换成文本文件procedure TForm1.Button3Click(Sender: TObject);
var
iFileHandle,iFileLength,iBytesRead:integer;
//pszBuffer:PChar;
//pszBuffer:array of char;
pszBuffer : PChar;
hexBuffer:string;
hexChar:string[4];
i:integer;
begin
if openDialog1.Execute then
begin
memo1.Clear;
iFileHandle:=fileOpen(opendialog1.FileName,fmOpenRead);
iFileLength:=FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
//setLength(pszBuffer,iFileLength+1);
pszBuffer := PChar(AllocMem(iFileLength + 1)); iBytesRead:=FileRead(iFileHandle,pszbuffer^,iFileLength);
fileClose(iFileHandle);
for i:=0 to iBytesRead do
begin
hexChar:=format('%2x',[byte(pszBuffer[i])]);
hexBuffer:=hexBuffer+upperCase(hexChar);
end;
memo1.Lines.Add(hexBuffer); end;
end;
下面这段程式是把二进制文件以16进制显示在MEMO中.但如何以ASCII来显示呢.
请高手指导一下啊.帮我改改.
我的目的就是把苹果电脑里的二进制文件 打开后转换成文本文件procedure TForm1.Button3Click(Sender: TObject);
var
iFileHandle,iFileLength,iBytesRead:integer;
//pszBuffer:PChar;
//pszBuffer:array of char;
pszBuffer : PChar;
hexBuffer:string;
hexChar:string[4];
i:integer;
begin
if openDialog1.Execute then
begin
memo1.Clear;
iFileHandle:=fileOpen(opendialog1.FileName,fmOpenRead);
iFileLength:=FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
//setLength(pszBuffer,iFileLength+1);
pszBuffer := PChar(AllocMem(iFileLength + 1)); iBytesRead:=FileRead(iFileHandle,pszbuffer^,iFileLength);
fileClose(iFileHandle);
for i:=0 to iBytesRead do
begin
hexChar:=format('%2x',[byte(pszBuffer[i])]);
hexBuffer:=hexBuffer+upperCase(hexChar);
end;
memo1.Lines.Add(hexBuffer); end;
end;
文件文件.
请高手帮帮小弟.