我想从二进制/文本文件中删除字符/字符串。如果我知道文件中char/string的位置,我该如何删除它?我应该读取文件(BlockRead),删除字符/字符串(删除(源,startPos,endPos),然后写入(BlockWrite)到一个新的文件或我可以直接从指定的文件中删除?从二进制文件中删除字符
谢谢
我想从二进制/文本文件中删除字符/字符串。如果我知道文件中char/string的位置,我该如何删除它?我应该读取文件(BlockRead),删除字符/字符串(删除(源,startPos,endPos),然后写入(BlockWrite)到一个新的文件或我可以直接从指定的文件中删除?从二进制文件中删除字符
谢谢
您可以使用TFileStream.CopyFrom方法复制到不需要的stri ng,找出它,然后再从文件的其余部分复制。 TFileStreams非常快。
像这样(未经)
aInFile := TFileStream.Create(sInput, fmOpenRead);
try
aOutFile := TFileStream.Create(sOutput, fmCreate);
try
aOutFile.CopyFrom(aInFile, Pos);
aInFile.Seek(Skip);
aOutFile.CopyFrom(aInFile, aInfile.Size - Pos - Skip);
finally
aOutFile.Free;
end;
finally
aInFile.Free;
end;
你可能需要从中删除角色后点读取和写入整个文件,或者至少所有字节
有时更好地想出了一个办法来避免删除字符 - 即文件中的空白空间
它可能会更容易地使用TFileStream的比BlockRead /块写入 – 2009-10-16 04:48:14