关于文件操作的问题(100分)

  • 主题发起人 主题发起人 bobbycpu
  • 开始时间 开始时间
读取一个正在进行读写的文件的内容!!

const MyFile='d:/ttt';
var
F:TFileStream;
procedure TForm1.FormCreate(Sender: TObject);
var
x:integer ;
begin
if not fileexists(MyFile) then
begin
F:=TFileStream.Create(MyFile,fmCreate);
F.free;
end;
F:=TFileStream.Create(MyFile,fmOpenReadWrite or fmShareDenyNone);
x:=1234;
f.WriteBuffer(x,4);
x:=5678;
f.WriteBuffer(x,4);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
f.free;
end;

//读取正下进行读写的文件内容
procedure TForm1.Button1Click(Sender: TObject);
var
AF:TFileStream;
x:integer;
begin
AF:=TFileStream.Create(MyFile,fmOpenRead or fmShareDenyNone);
af.Position:=0;
af.readBuffer(x,4);
showmessage(inttostr(x));
af.readBuffer(x,4);
showmessage(inttostr(x));
AF.free;
end;

//改变文件内容
procedure TForm1.Button2Click(Sender: TObject);
var
x:integer;
begin
f.position:=0;
x:=8888;
f.Write(x,4);
x:=9999;
f.Write(x,4);
end;
 
你说读取一个正在打开的文件,有这个必要么,就算能够读取也有可能你读取的是修改以前的
和修改后的会不一样的。
 
有可能其它程序打开的。

修改不管,当前最新。
 
你直接用API函数拷贝不就得了么,省得麻烦。
 
不能用拷贝,如果大文件的话,太慢了,实太受不了。我还是用TFileStream试着做一下,
Delphi的文件控制,我也是第一次编,不是很熟,主要是一个文件写另一文件时,还不是很
明白,我试着编编看!谢谢大家!
 
多人接受答案了。
 
后退
顶部