我应该创建一个程序将信息存储到文件中、编辑该文件中的信息并添加新信息的最佳方法是什么

StackOverflow https://stackoverflow.com/questions/704892

我即将开始一个小项目,我正在尝试创建一个 C++ 程序来将库存数据存储到文件中(我猜 .txt 就可以了)

  • •项目描述•手头数量•批发成本•零售成本•添加到库存的日期

我需要能够:

•将新记录添加到文件中•在文件中显示任何记录•更改文件中的任何记录

在开始之前我应该​​知道什么可以让这变得更加简单和高效......

例如,我应该尝试使用 XML 还是通过 C++ 很难使用的内容?

我从来没有真正理解最有效的方法。

就像我会搜索文件并查找括号中的内容或其他内容吗?

编辑

数据大小不应该太大。我想你可能会说这是为了家庭作业。我想将结构体的内容写入文件的路径中,我该怎么做?

有帮助吗?

解决方案

有很多方法。这是为了家庭作业还是为了实际用途?如果是用于家庭作业,则可能对您可以使用的内容有一些限制。

否则我建议一些嵌入式 DBMS,例如 SQLite. 。还有其他解决方案,但这将是最强大的解决方案,并且也将具有最简单的实现。

XML 也是可以接受的,并且有许多可重用的实现,但是一旦您处理数千条记录,它就会开始损失性能。JSON 也是如此。人们可能仍在争论 JSON 和 XML 哪一种更简单。

另一种可能性是创建一个 struct 并将其内容直接写入文件。如果记录大小不是恒定的,就会变得棘手。而且,如果记录格式发生变化,则需要重建文件。否则,如果认真实施,该解决方案可能是性能最佳的解决方案之一。

其他提示

您能告诉我们为什么不想使用数据库引擎吗?

如果只是为了学习的话......请给我们提供该文件中存储数据的估计大小和访问模式(有多少用户,他们执行操作的频率等)?

挑战将是创建有效的搜索和修改代码。

对于搜索来说,它与数据结构和组织有关。对于修改,就是如何将更新写入文件,而不将其完全读入内存,在那里更新,然后再次将其完全写回文件。

如果这是一个实际使用的项目,并且有可能随着时间的推移添加功能,那么从一开始就选择数据库解决方案,即使它看起来有些过头了。我以前也曾走过这条路,随着时间的推移,一些小功能会被添加,在你意识到之前,你已经实现了一个数据库。不好。硬着头皮使用数据库。

如果这是一个学习练习,则取决于您要存储的数据量。如果它很小,最简单的方法是将整个文件读入内存并在那里对其进行操作。进行更改后,将整个文件写回磁盘。如果数据太大而无法做到这一点,那么最好的办法就是使用固定大小的记录。创建一个包含所有数据的 POD 结构(即没有指针、stl 容器等)。然后您可以重写单个记录,而无需重写整个文件。如果这些都不起作用,那么最好的选择是数据库解决方案。

如果您坚持手动执行,我建议使用 JSON 而不是 XML。

另外,考虑一下sqlite。

这听起来像是一份完美的工作 SQLite. 。体积小、速度快、灵活且易于使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top