下面的程序是将文件读出以16进制写进文本文件var sfile:file;
dfile:Textfile;
byteread,i:integer;
buffer:array[1..16] of byte;begin
if opendialog1.Execute then
assignfile(sfile,opendialog1.FileName)
else
abort; if savedialog1.Execute then
assignfile(dfile,savedialog1.FileName)
else
abort;
try
reset(sfile,1);
rewrite(dfile);
repeat
blockread(sfile,buffer,sizeof(buffer),byteread);
if byteread>0 then
begin
for i:=1 to byteread do
begin
write(dfile,format('%0.2x',[buffer[i]]));
write(dfile,' ');
end;
writeln(dfile,'');
end;
until byteread=0;
finally
closefile(sfile);
closefile(dfile);
end;
dfile:Textfile;
byteread,i:integer;
buffer:array[1..16] of byte;begin
if opendialog1.Execute then
assignfile(sfile,opendialog1.FileName)
else
abort; if savedialog1.Execute then
assignfile(dfile,savedialog1.FileName)
else
abort;
try
reset(sfile,1);
rewrite(dfile);
repeat
blockread(sfile,buffer,sizeof(buffer),byteread);
if byteread>0 then
begin
for i:=1 to byteread do
begin
write(dfile,format('%0.2x',[buffer[i]]));
write(dfile,' ');
end;
writeln(dfile,'');
end;
until byteread=0;
finally
closefile(sfile);
closefile(dfile);
end;
var B: Byte;
var S: String;
...
Read(F, B);
S := S + IntToHex(B, 2) + ' ';
...// 实际中最好是读到一个数组缓冲区里,以提高效率。