如何截断文件! ( 积分: 100 )

  • 主题发起人 主题发起人 qqjm
  • 开始时间 开始时间
Q

qqjm

Unregistered / Unconfirmed
GUEST, unregistred user!
我用文件记录数据,删除部分数据后想将文件截断以减少文件的大小,在Delphi中如何操作?注:我用的是TFileStream进行对文件操作的,但是好像没有发现想关的截断函数!
 
filestream.savetofile
 
原来程序是C#代码,要改写成Delphi,这个代码怎么改?

System.IO.FileStream fs = new System.IO.FileStream(@"C:/AppDat.Dat",System.IO.FileMode.OpenOrCreate
,System.IO.FileAccess.ReadWrite,System.IO.FileShare.ReadWrite);
.........
fs.SetLength(fs.Position);//在当前位置截断文件。
.........
fs.Close();

因为要处理的文件比较大,如果另存一个的话需要花很长的时间,直接截断就没有这个问题了!但是Delphi的代码要怎样写?
 
var MemoryStream : tMemoryStream;
MemoryStream := tMemoryStream.Create;
MemoryStream,seek(0, soFromBeginning);
MemoryStream.copyrom(filestream,filestream.size);
MemoryStream.setsize(FecthSize)
 
var
FileStream:TFileStream;
begin
FileStream:=TFileStream.Create('c:/abc',fmOpenReadWrite or fmShareDenyNone);
try
FileStream.size:=你要的尺寸;
finally
filestream.free;
filestream:=nil;
end;
 
appfirst是对的,没想到这么简单。。。。
sujing1982的代码不知到自己试过了没有,我设置150M的文件,用 200M的内存,2分多钟的CPU都还没有处理。。。。。
我爱PASCAL的代码无法测试,因为找不到savetofile这个东西。。。
 
后退
顶部