我想從二進制/文本文件中刪除字符/字符串。如果我知道文件中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