关于文件操作的一些问题! ( 积分: 100 )

  • 主题发起人 主题发起人 我爱delphi
  • 开始时间 开始时间

我爱delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
使用FileOpen打开某个文件之后怎么在文件中间插入新的数据?<br>FileSeek(Handle,&nbsp;nPos,&nbsp;1);<br>FileWrite(Handle,&nbsp;Storage,&nbsp;SizeOf(TStorage));<br>我直接这么写好像不行啊?<br>还有就是如何删除某些不再需要的数据?不是用#0之类的方法填充,就是要彻底的从文件中删除.
 
用文件流打开这个文件。<br>见想文件的前半部分读入一个新流,然后读入你要插入的部分,最后写入原文件的后半部分。在将这个流覆盖到原文件流中,保存即可。
 
难道就不能直接插入新数据?
 
我现在的这个文件可能会变的很大,读写以及删除操作比较频繁.<br>如果这样的话,那么效率岂不是非常低了~!
 
我也在思考这种问题:<br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>Var&nbsp;FS:TfileStream;<br>&nbsp;&nbsp;&nbsp;&nbsp;Buf:array&nbsp;&nbsp;of&nbsp;byte;<br>Begin<br>&nbsp;&nbsp;&nbsp;&nbsp;setlength(buf,100);<br>&nbsp;&nbsp;&nbsp;&nbsp;FS:=TFileStream.Create('c:/1.gif',&nbsp;fmOpenRead);<br>&nbsp;&nbsp;&nbsp;&nbsp;FS.Position:=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;FS.Read(Buf,100);<br>&nbsp;&nbsp;&nbsp;&nbsp;FS.Free;<br>&nbsp;&nbsp;&nbsp;&nbsp;buf[0]:=$19;<br>&nbsp;&nbsp;&nbsp;&nbsp;FS:=TFileStream.Create('c:/11.gif',&nbsp;fmOpenWrite&nbsp;or&nbsp;fmCreate);<br>&nbsp;&nbsp;&nbsp;&nbsp;FS.Write(Buf,100);<br>&nbsp;&nbsp;&nbsp;&nbsp;FS.Free;<br>end;<br>上面代码编译不出错,执行有错误。这是什么回事啊
 
我现在的这个文件可能会变的很大,读写以及删除操作比较频繁.<br>如果这样的话,那么效率岂不是非常低了~!
 
不能直接插入文件,就算是数据库系统,他也是读元文件,写元文件,写插入部分,写元文件剩余部分!呵呵!
 
后退
顶部