如何使用 c++ 和 Qt 管理 XML 配方

Howto manage XML recipes with c++ and Qt?

本文关键字:管理 XML 配方 Qt 何使用 c++      更新时间:2023-10-16

我想写一个管理食谱的软件。配方是有效的独立 xml 文件。它们包含字符串和整数值以及图像数据(以 base64 表示形式)。用户应该能够创建/打开、编辑和保存食谱。现在我担心文件管理和效率(速度和内存)。

  1. 我应该如何管理所有食谱?我想我可以将它们全部作为纯 xml 文件存储在一个文件夹中,或者将它们全部存储在某种库文件中。第一种方法在启动时可能更快,因为当用户单击它们时,例如在QTreeView中加载配方。第二种方法可能更有效、更快速,因为整个库将保存在内存中,尽管更改其内容可能更复杂。

  2. 我想使用 DOM 进行 xml 文件处理 - 或者 QXmlStreamReader/writer 会是更好的选择吗?

  3. 无论哪种方式,我都必须使用唯一ID来管理配方数据,例如,对于几个不同的"Cookie"配方。当使用问题 1 中的第一种方法时,我会使用基于此类 ID 的文件名。是否有任何方便的方法可以创建唯一 ID?因为当使用递增整数时,我必须跟踪哪些数字已经在使用中。

我正在使用XML文件在我的食谱程序中传输食谱。我可以选择使用 XML 导入和导出。

我正在使用数据库来存储食谱。 我不使用 XML 数据文件来存储食谱。 我将把数据管理留给数据库(我不会浪费时间编写和调试数据库)。

对于数据存储,有比XML更有效的文件格式。 此外,您可能希望创建"索引表",以便对文件进行排序和更有效的访问,而不是必须始终解析 XML 文件。