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

时间:2009-04-01 10:13:47

标签: c++ xml file save inventory

我即将开始一个小项目,我正在尝试创建一个C ++程序,将库存数据存储到一个文件中(我猜一个.txt会这样做)

  • •项目描述•手头数量 •批发成本•零售成本•日期 已添加到广告资源

我需要能够:

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

在我开始之前是否有任何我应该知道的事情可以使这更容易和高效......

例如,我应该尝试使用XML还是通过C ++使用XML太难了?

我从未真正理解这种做法的最有效方法。

我会搜索文件并在括号中查找内容吗?

修改

数据量不应太大。这是我可以说的功课。我想将结构的内容写入文件的路径,我该怎么做呢?

5 个答案:

答案 0 :(得分:4)

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

否则我建议使用像SQLite这样的嵌入式DBMS。还有其他一些,但这将是最强大的解决方案,也将是最简单的实现。

XML也是可以接受的,并且有许多可重用的实现可用,但是一旦你进入数千条记录,它将开始失去性能。 JSON也是如此。人们可能仍然会争论哪一个更简单 - JSON或XML。

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

答案 1 :(得分:1)

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

如果只是为了学习那么....请告诉我们该文件中存储数据的估计大小和访问模式(有多少用户,他们多久做一次等等)?

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

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

答案 2 :(得分:1)

如果这是一个实际使用的项目,并且有可能随着时间的推移添加功能,那么从一开始就寻求数据库解决方案,即使它看起来有点过分。我之前一直在这条路上,随着时间的推移,小功能会被添加,在你意识到它之前你已经实现了一个数据库。糟糕。咬紧牙关并使用数据库。

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

答案 3 :(得分:0)

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

另外,请考虑使用sqlite。

答案 4 :(得分:0)

这听起来像是SQLite的完美工作。小巧,快速,灵活且易于使用。