gpt4 book ai didi

c++ - QTextStream 操作

转载 作者:行者123 更新时间:2023-11-28 08:13:47 25 4
gpt4 key购买 nike

我正在打开一个文件并获取它的 QTextStream。然后我使用 readLine() 逐行读取流。当该行与某个字符串匹配时,我需要将其替换为另一个字符串。我需要的行为是完全替换该行(即,如果该行是“longword”并且我将其替换为“word”,则该行应仅包含“word”和“word”)。

目前我正在使用 seek() 然后使用 << 运算符将我的字符串放在给定的位置,但最后一个字符串的剩余部分仍然存在,所以我留下了类似“wordword”的东西。我怎样才能防止这种情况发生并确保整个以前的行完全替换为我的新行?

最佳答案

据我所知,您不能简单地就地删除一大块文本文件。如果替换字符串的大小相同,您可能能够替换那些确切的字节,如果它更短,您可能能够通过用空值填充空白空间来解决问题。

如果您不想这样做,则必须创建一个新文件,从旧文件中读取每一行,在内存中对该行进行任何必要的更改,然后将该行写入新文件。一旦完成,您就可以用新文件替换原始文件。

如果可以向文件添加 block 或从文件中删除 block ,您很可能会在 HDD 上留下相当碎片化的文件。如果您需要插入更多字符,则必须创建额外的片段,因为新数据根本无法容纳旧数据占用的空间量,并且删除数据会在文件中留下漏洞。

关于c++ - QTextStream 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com