我要开始一个我想做的小项目,在这里我创建了一个C++程序来将库存数据存储到一个文件中(我想.txt就可以了)
我需要能够:
·向文件中添加新记录。显示文件中的任何记录。更改文件中的任何记录
在我开始之前有什么事情可以让我更容易更有效率.
例如,我是否应该尝试使用XML,或者通过C++使用太难的东西?
我从来没有真正理解过最有效的方法。
就像我会在文件中搜索并查找括号中的东西之类的东西吗?
编辑
数据不应该太大。这是为了家庭作业,我想你可以这么说。我想将结构的内容写入一个文件的路径中,我该怎么做呢?
发布于 2009-04-01 10:43:17
有很多种方法。这是家庭作业还是真正的用途?如果是为了家庭作业,你可能会受到一些限制。
否则,我建议一些嵌入式DBMS,如SQLite。也有其他的,但这将是最强大的解决方案,也将有最简单的实现。
XML也是可以接受的,并且有许多可重用的实现,但是一旦进入数千条记录,它将开始失去性能。JSON也是如此。而且人们可能仍然认为哪一个更简单-- JSON或XML。
另一种可能是创建一个struct并将其内容直接写入文件。但是,如果记录大小不是恒定的,就会变得很棘手。而且,如果记录格式发生变化,则需要重新生成文件。否则,如果仔细执行,这个解决方案可能是最好的性能之一。
发布于 2009-04-01 10:36:17
你能告诉我们为什么你不想使用数据库引擎吗?
如果只是为了学习,那么.请给我们估计该文件中存储的数据的大小和访问模式(有多少用户,他们多久做一次等等)?
挑战将是创建一个高效的搜索和修改代码。
对于搜索来说,它是关于数据结构和组织的。对于修改,您将如何将更新写入文件,而不将其完全读入内存,在内存中进行更新,然后再次将其完全写入文件。
发布于 2009-04-01 13:11:37
如果这是一个实际将被使用的项目,并且有可能随着时间的推移添加特性,那么从一开始就使用一个数据库解决方案,即使它看起来有些过分。我以前在这条路上走过,随着时间的推移,小功能会被添加进来,而在你意识到它之前,你已经实现了一个数据库。很糟糕。咬紧牙关使用数据库。
如果这是一个学习练习,它取决于您想要存储的数据量。如果它很小,最简单的方法就是将整个文件读入内存并在那里操作。当进行更改时,将整个文件写回磁盘。如果数据太大,无法做到这一点,那么第二个最好的方法就是有固定大小的记录。创建包含所有数据(即没有指针、stl容器等)的POD结构。然后,您可以重写单个记录,而无需重写整个文件。如果这两种方法都不起作用,那么最好的选择就是数据库解决方案。
https://stackoverflow.com/questions/704892
复制相似问题