Delphi如何从二进制文件中删除特定字符?
- 内容介绍
- 文章标签
- 相关推荐
本文共计425个文字,预计阅读时间需要2分钟。
从二进制文件/文本文件中删除一个字符/字符串,如果已知该字符/字符串的位置,可以使用以下步骤:
1. 读取文件(使用BlockRead)。
2.确定字符/字符串的起始位置和结束位置。
3.使用Delete函数删除字符/字符串。
4.将修改后的内容写回文件。
示例代码(Python):
python
def delete_char_from_file(file_path, char, start_pos): with open(file_path, 'rb') as file: # 读取文件内容 data=file.read()# 将二进制数据转换为字符串 str_data=data.decode('utf-8')
# 删除指定位置的字符 new_str_data=str_data[:start_pos] + str_data[start_pos+1:]
# 将字符串转换回二进制数据 new_data=new_str_data.encode('utf-8')
# 将修改后的内容写回文件 with open(file_path, 'wb') as file: file.write(new_data)
调用函数delete_char_from_file('example.txt', 'a', 10)
注意:此代码示例适用于文本文件,对于二进制文件,需要根据实际情况进行调整。
我想从二进制文件/文本文件中删除一个字符/字符串.如果我从文件中知道char / string的位置,我该如何删除它?我应该读取文件(BlockRead),删除char / string(使用Delete(source,startPos,endPos)然后将(BlockWrite)写入新文件,或者我可以直接从指定文件中删除?谢谢
您可以使用TFileStream.CopyFrom方法复制到不需要的字符串之前,先搜索它,然后再复制CopyFrom文件的其余部分. 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;
本文共计425个文字,预计阅读时间需要2分钟。
从二进制文件/文本文件中删除一个字符/字符串,如果已知该字符/字符串的位置,可以使用以下步骤:
1. 读取文件(使用BlockRead)。
2.确定字符/字符串的起始位置和结束位置。
3.使用Delete函数删除字符/字符串。
4.将修改后的内容写回文件。
示例代码(Python):
python
def delete_char_from_file(file_path, char, start_pos): with open(file_path, 'rb') as file: # 读取文件内容 data=file.read()# 将二进制数据转换为字符串 str_data=data.decode('utf-8')
# 删除指定位置的字符 new_str_data=str_data[:start_pos] + str_data[start_pos+1:]
# 将字符串转换回二进制数据 new_data=new_str_data.encode('utf-8')
# 将修改后的内容写回文件 with open(file_path, 'wb') as file: file.write(new_data)
调用函数delete_char_from_file('example.txt', 'a', 10)
注意:此代码示例适用于文本文件,对于二进制文件,需要根据实际情况进行调整。
我想从二进制文件/文本文件中删除一个字符/字符串.如果我从文件中知道char / string的位置,我该如何删除它?我应该读取文件(BlockRead),删除char / string(使用Delete(source,startPos,endPos)然后将(BlockWrite)写入新文件,或者我可以直接从指定文件中删除?谢谢
您可以使用TFileStream.CopyFrom方法复制到不需要的字符串之前,先搜索它,然后再复制CopyFrom文件的其余部分. 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;

