**** 关于将字符串写进二进制文件
关于将字符串写进二进制文件
我想把字符串 StrName 写进一个二进制文件的 46 位置,我用的方法是:
var
OutFile:File;
fbuffer:array [0..128] of char;
i:integer;
bagin
assignfile(outFile,'G:\123.123');
Reset(outFile,1);
Seek(outFile,46);
for i:=0 to 128 do fbuffer[i]:=chr(0); //对 fbuffer 清空
for i:=1 to length(strName) do fbuffer[i-1]:=strName[i]; //付值给 fbuffer
Blcokwrite(outfile,fbuffer,length(strName)); //写文件
closefile(outfile);
end;
请问有更好的方法吗?
问题点数:50、回复次数:6Top
1 楼eastxiang(飄)回复于 2001-10-27 08:42:58 得分 0
upTop
2 楼eastxiang(飄)回复于 2001-10-27 08:43:04 得分 0
gzTop
3 楼hellion(恶人)回复于 2001-10-27 09:14:27 得分 45
var
OutFile:File;
// fbuffer:array [0..128] of char;
i:integer;
bagin
assignfile(outFile,'G:\123.123');
Reset(outFile,1);
Seek(outFile,46);
//for i:=0 to 128 do fbuffer[i]:=chr(0); //对 fbuffer 清空
//for i:=1 to length(strName) do fbuffer[i-1]:=strName[i]; //付值给 fbuffer
Blockwrite(outfile,PChar(strName)^, length(strName)); //写文件
closefile(outfile);
end;
Top
4 楼Crob(Take Everything Easy!)回复于 2001-10-27 09:18:44 得分 5
使用TFileStream
uses classes,....
var f: TFileStream;
fbuffer:array [0..128] of char;
begin
f:= TFileStream.Create('c:\xxx', fmOpenReadWrite);
f.Seek(64, soFromCurrent);
f.Write(fBuffer, sizeof(fbuffer));
f.Free;
end;Top
5 楼XZHHAI(星之瀚海)回复于 2001-10-27 09:21:26 得分 0
楼上的意见较为好Top
6 楼xiaohuilau()回复于 2001-10-27 11:49:53 得分 0
非常感谢 hellion(恶人) ,你的方法真在令我太満意。
至于Crob(干净的袜子) 虽然并没有解决我的问题,只是用了另一钟文件读存方法。而我在的就是如何将 STRING 直接存到文件中。但也十分感谢你。Top




