一个文件中,其中有一部分字段要在delphi中删除 请问怎么做啊?谢谢
解决方案 »
- Delphi 的StringGrid 如果在添加数据时增加行。
- ini文件怎样检测有没有section和section下的ident?
- 好消息: 远程监控专题论坛成立,欢迎加入!
- DBGrid 表里记录的排序问题???
- 如何Free以一个控件为Parent的所有动态创建的子控件?
- 做一个打印象四级英语考试那样,
- 運行時提示:[microsoft][ODBC Microsoft Access Driver]參數太少,預期個數1.是甚麼意思?
- close的问题?
- 急!!!请问斑主,我如何把可用分或参与分转成专家分给别人??????,多谢
- 请问TClientSocket组件如何设置代理?或着如何读取本机的IE设置?
- 谢谢trainbox(rain)的热心,再给50分:)
- 奇怪的问题:类里面的成员数组调用
或
TFileStream流数据移动截取都OKhttp://lysoft.7u7.net
function TakeFile(FilePath: String): Boolean;
var
lpReOpenBuff: OFSTRUCT;
FFileHandle: THandle;
FMapHandle: THandle;
FFileSize: Integer;
MySize: Integer;
FData: PChar;
hMem: HGLOBAL;
pMem: PChar;
begin
Result := True;
FFileHandle := OpenFile(PAnsiChar(FilePath), lpReOpenBuff, OF_READWRITE);
if FFileHandle = HFILE_ERROR then
begin
Result := False;
Exit;
end;
try
FFileSize := GetFileSize(FFileHandle, nil);
MySize := FFileSize;
FMapHandle := CreateFileMapping(FFileHandle, nil, PAGE_READWRITE, 0, MySize, nil);
if FMapHandle = 0 then
begin
Result := False;
Exit;
end;
finally
CloseHandle(FFileHandle);
end;
try
FData := MapViewOfFile(FMapHandle, FILE_MAP_ALL_ACCESS, 0, 0, FFileSize);
if FData = nil then
begin
Result := False;
Exit;
end;
finally
CloseHandle(FMapHandle);
end;
try
hMem := GlobalAlloc(GPTR, MySize);
pMem := GlobalLock(hMem);
pMem[0] := FData[0]; //取原文件的第一个字符
pMem[1] := FData[3]; //取原文件的第4个字符
CopyMemory(FData, pMem, MySize); //将pMem的数据Copy到FData的内存上
finally
UnmapViewOfFile(FData);
GlobalFree(hMem);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
TakeFile('C:\1.txt');
end;1.txt 原来内容是 abcd
现在内容是 ad
//以上方法中,并不是真正意义上的删除了文件内容,只是移动文件内容把后面剩余位填充空字符的过程,文件大小没变。不过也可以手动删除文件尾部的这些空位。
//所以此方法只是一个练习,并不可取!:)