急!急!如何操作一个二进制文件(按字节读出,写入)?(100分)

  • 主题发起人 主题发起人 bigbug
  • 开始时间 开始时间
B

bigbug

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样按字节读出和写入一个二进制文件?
我本来想用TFileStream来实现,但read方法不知怎样写。
是否有其他更好的办法?
 
用 API:
_lopen
_llseek
_lwrite
_lread
_lclose
就可以了,又简单
 
用 API:
_lopen
_llseek
_lwrite
_lread
_lclose
就可以了,又简单
 
不好意思,可能是我没把问题说清楚。
我想用read或_lread读出字节,比如第一个字节,
然后在EDIT控件上显示它的二进制值。
我试了几次,但显示的值显然不对,怎办?
请帮我写出简单的代码
 
交流一下,
我一般用treader的readchar方法.
得出一个char c然后
var
c:char;
m,i:integer;
begin
m:=ord(c);
m:=2;
edit1.text:='';
for i:=1 to 8 do
begin
edit1.text:=chr((ord('0')+(m mod 2)))+edit1.text;
m:= m shr 1;
end;

end;
已简单试过.


 
可以这样:
function inttobin(value:longint;):string;
var
i: integer;
begin
result:='';
for i:=8 downto 0 do begin
if value and (1 shl i)<>0 then begin
result:=result+'1';
end else begin
result:=result+'0';
end;
end;
end;

...
f:file of char;
c:char;
i:integer;
begin
assignfile(f,'abc.efg');
reset(f);
for i:=1 to filesize(f) do
begin
read(f,c);
memo1.lines.add(inttobin(ord(c))+' ');
end;
closefile(f);
end;
...


mophy@188.net
 
多人接受答案了。
 
后退
顶部