文件的读写操作和转存问题(50分)

  • 主题发起人 主题发起人 流浪的小鸟
  • 开始时间 开始时间

流浪的小鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我在读写文件时,需要对和文本文件一样格式的dat文件进行操作,即将其中的某些行
读出,然后在将某些行修改,用的是readln和writeln,独得时候没有问题,写的时候由于
只修改一行,可是我整个文件全部修改,必须全部读出文件的数据,全部写才能完成操作。
有没有什么简单的操作。
另外怎么将一个文件从一个目录拷贝至另一个目录。
 
copyfile()函数
 
使用tstrings
 
readln和writeln不行,将文件按二进制文件打开(不能是TEXTFILE类型),就可以用
Seek Moves the current position of a typed or untyped file to a specified component. Not used with text files.
来移到需要行
 
Function GetFiledata(FileName: String): String;
Var
r: String;
f: TFileStream;
Begin
Try
result := '';
F := TFileStream.Create(FileName, fmOpenRead Or fmShareDenyNone);
Try
setlength(r, f.size);
F.Read(r[1], f.size);
Finally
F.Free;
End;
result := r;
Except
End;
End;

Procedure SetFiledata(Const FileName, Data: String);
Var
F: TFileStream;
Begin
ForceDirectories(ExtractFilePath(FileName));
F := TFileStream.Create(FileName, fmCreate Or fmOpenReadWrite Or fmShareDenyNone);
Try
Try
If FileName = '' Then exit;
F.write(Data[1], Length(Data));
SetEndofFile(F.handle);
Except
End;
Finally
F.Free;
End;
End;
 
多人接受答案了。
 
后退
顶部