没人回答,自己解决了,请斑竹(luyear, menxin )将分数给我,谢谢! (50分)

  • 主题发起人 主题发起人 cjh_xf
  • 开始时间 开始时间
C

cjh_xf

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用文件流将数据写入文件
for ...
FileStream.Write(Byte,1);
end;
然后使用文本的方式读出,
RdFile:TextFile;
begin
AssignFile(RdFile,'....');
ReSet(RdFile);
While not Eof(RdFile) do
begin
Read(RdFile,Str);
//对str的处理
end;
CloseFile(RdFile);
这样操作的结果对有的文件正确,而有的文件会漏掉一个字节的数据(我是将读出的数据在写进另外的文件,然后比较知道的),我要用的是二进制数。后来又改用文件流读出:
var
Arr:Array[1..1024] of Byte;
FileStream:TFileStream;
begin
FileStream:=TFileSTream.Create(...,fmOpenWrite);
FileStream.Read(Arr,1024];
//对数据处理
FileSTream.Free;
end;
可是这样好象得不到数据??
请指教:为什么第一中方法在读数据是回漏掉一到两个字节的数据?第二中方法可不可行?该怎么用?
 
第二种方法是我搞错了,应该用fmopenread
 
不过我改正了以后还是没有读到数据
FileStream:TFileSTream;
TestFile:TFileStream;
Arr:Array[1..256] of Byte;
begin
FileStream:=TFileStream.Create(要执行的文件,fmOpenRead);
TestFile:=TFileStream.Create(测试文件,fmCreate or fmOpenWrite);
FileStream.Read[Arr,256];
TestFile.Write(Arr,256];
FileStream.Free;
TestFile.Free;
end;
这样操作后,我的测试文档中没有任何数据。
 
现在的dfw怎么这么冷漠了?!唉,这个是个很基本的问题呀,不可能是不会!
FileStream.Read(Arr[1],Length(Arr));
--OK了!这是指针的问题!--
斑竹,请将我的分数还我吧。谢谢!
 
唉, 是没人看到你的问题吧, 呵呵..
 
多人接受答案了。
 
后退
顶部