我目前正在头脑风暴一个财务计划,该计划将处理(随着时间的推移)相当大量的数据。它将是一个 C++/Qt GUI 应用程序。
我认为在运行时将所有数据读入内存是不可能的,因为给定足够的数据,它可能会占用太多内存。
我试图想出一种方法来仅将我需要的内容读入内存,例如,如果我显示了一个帐户,则只有实际显示的数据(以及其他任何绝对必要的数据)。这样即使数据文件是 4gb 左右,内存占用也可以保持很小。
我想到了某种搜索功能,它会慢慢地逐行读取文件并找到一个“标签”或识别我想要的特定数据的东西,然后加载它,但考虑到这种情况理论上可能会在每次有 gui 更新时发生似乎是一个可怕的路要走。
本质上,我希望能够有效地定位文件中的特定数据,仅将其读取到内存中,并可能对其进行更改并将其写回,而无需每次都读取和写入整个文件。我不是一个经验丰富的程序员,我在谷歌上搜索想法并不是很成功。
编辑:我可能应该提到我打算使用 Qt 的花哨的 QDataStream 相关类来存储数据。换句话说,该文件可能是二进制文件,不容易像文本文件那样逐行搜索。