100分求:★★ 简单而复杂的问题:删除一个文件中特定位置的字符 ★★(100分)

  • 主题发起人 主题发起人 lijianzhou
  • 开始时间 开始时间
L

lijianzhou

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在一个2G大的文件最后添加了10个字节的字符标志,现在想通过block或其他方法删除这个10个字节然后保存,前提是不影响速度。
把文件内容全部读到内存或变量重新保存的方法不可行的,我的想法是能不能直接设置文件长度直接截断这10个字符。如何做,请给代码?谢谢!
 
呵呵,这方面可与我联系.
QQ 87797301
 
帮顶,,帮顶
 
三个API搞定,自己去查下
CreateFile
SetFilePointer 设置文件指针位置
SetEndOfFile 关键
 
procedure TruncFile(const FileName: string);
var
hFile, dwSize: DWORD;
begin
hFile := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ,
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0);
dwSize := GetFileSize(hFile, nil) - 10;
SetFilePointer(hFile, dwSize, nil, FILE_BEGIN);
SetEndOfFile(hFile);
CloseHandle(hFile);
end;
 
多人接受答案了。
 
后退
顶部