请教关于文件操作的问题(20分)

  • 主题发起人 主题发起人 zyhkernel
  • 开始时间 开始时间
Z

zyhkernel

Unregistered / Unconfirmed
GUEST, unregistred user!
我将数据以记录为单位写入一个文件,在另一个函数中会用到该文件。可是在使用该文件时要涉及到读记录和对某些记录的字段进行修改。可是在Delphi中打开文件的方式只有Reset和Rewrite两种。用Reset打开就不能写入和修改,用Rewrite就会把原来的文件清空。难道在Delphi中就没有以 读/写方式打开的吗?如果有,请各位前辈赐教。如果没有,那又如何实现我所需要的功能呢?这个问题对我的毕业设计很重要,请大家不吝赐教!
 
用appendfile...
 
var

f: TextFile;
begin
if OpenDialog1.Execute then
begin { open a text file }
AssignFile(f, OpenDialog1.FileName);
Append(f);
Writeln(f, 'I am appending some stuff to the end of the file.')

{ insert code here that would require a Flush before closing the file }
Flush(f)
{ ensures that the text was actually written to file }
CloseFile(f);
end;

end;
 
看看FileOpen帮助吧!可能对你有些帮助
 
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile;
S: string;
begin
AssignFile(f, 'c:/a.txt');
Rewrite(f);
writeln(f,'aaaaaaaaaaaaaaaaa');
reset(f);
ReadLn(f,s);
ShowMessage(s);
append(f);
writeln(f,'bbbbbbbbbbbbbbb');
reset(f);
while not eof(f) do
begin
ReadLn(f,s);
ShowMessage(s);
end;
CloseFile(f);
end;
 
可能是我说的不太清楚吧,我的文件是以记录为单位的(f:file of recordType)。不可以用append打开。另外我是想对文件中间某些记录的字段进行修改存回去而不是在文件后面添加内容。我如何才能实现这样的功能呢?
 
你用Seek改变文件的指针,想在哪写就在哪写。
 
那应该以什么方式打开文件?修改后还要存回原来的位置。能说的再详细一点吗?最好有点代码。
 
用TFileStream吧,很方便的
 
后退
顶部