1

我在 Qt 中有我的应用程序的首选项文件。每当我启动应用程序时,它都会加载文件并根据内容相应地创建小部件。我为用户提供了一些自定义选项。现在,当我的应用程序关闭时,我正在检查首选项是否已更改。如果是,那么我将再次打开首选项文件,然后再次在其中添加所有内容。我不是在创建临时文件,而是直接编辑文件。这种方法有效吗?还是我做错了?因为我发现了这些线程: 1.编辑现有平面文件中间的最佳方法是什么?

  1. http://qt-project.org/forums/viewthread/25924/

应该使用我的二进制文件吗?目前我正在使用 ASCII 文件。谢谢。

更新:在上面的stackoverflow链接中,正确答案有

如果您无法使用 flat,那么您将无法使用老式的更新方式

我的意思是问我使用的方法是否是老式的,现在有没有更好的方法?& 平面文件是什么意思?

4

2 回答 2

3
  1. 不要尝试编辑文件。重写整个事情
  2. 使用临时文件重写。即将首选项的当前状态写入临时文件。然后在确保临时文件已成功写入后,将文件移动/重命名为您的实际首选项文件。这有助于在您重写文件时发生崩溃。如果你直接重写它,你将既没有旧的,也没有好的新的。如果您通过临时文件执行此操作,那么以这种方式执行此操作可确保在发生崩溃时,您至少有一个良好的首选项文件(尽管它包含旧的首选项)。
  3. 文本/二进制文件没有太大区别,除非它是一个非常大的文件。如果需要,文本将有助于手动编辑它。
于 2013-03-21T12:02:38.863 回答
0

这是一个非常好的方法。由于您似乎已经将所有首选项加载到内存中并且在那里进行了编辑,因此您无需为临时文件而烦恼(除非您想确保程序在写入期间失败时的安全性)。只需将所有首选项写回原始文件即可。

选择二进制文件还是文本文件取决于您。首选项往往是文本文件,因为它们具有仅使用文本编辑器而不是一些用于查看它们的专用软件的人类可读的额外好处。但是,由于解码更简单,二进制文件的性能可能稍好一些。

于 2013-03-21T12:02:19.830 回答