我在Windows上存储信息有哪些选项?我该如何阅读这些信息?

时间:2012-07-01 14:03:53

标签: c++ c windows winapi

我在Windows上存储信息的选项是什么?

我正在考虑创建一个文件或使用注册表,但如果文件太大而且注册表太容易被用户访问,那么该文件可能会变得非常烦人。

我不希望最多有100个条目,它们看起来像这样。

John Banana

Marcus Apple

我意识到这不会产生太大的文件,但我不想在每次需要信息时解析它。我在考虑在启动时将信息读入应用程序,但这不会产生性能问题吗?或者它可能很少,除了旧电脑之外没什么关系?还有其他选择吗?也许我可以加密信息并将其放入注册表中?注册表是否适合放置多个条目,例如?

请注意,当我编程时,我有时会在提高效率时过于夸张。请原谅我的无知。

1 个答案:

答案 0 :(得分:4)

您问我有什么选项可以在Windows上存储信息?基本上,有三种主要策略:

  1. 使用计算机的注册表并使用Registry API访问它。
  2. INI File Format中使用平面文本文件并使用私人文件 Profile String API可以访问它。
  3. 使用您自己格式的纯文本文件并使用您自己的文件 处理以访问它。
  4. 任何这些策略都将实现您存储数据的目标。

    但是,在Windows平台上,您必须考虑一个更重要的问题,它将为您提供答案:

      

    我的应用程序的用户是否想要将数据移动到另一台计算机并在另一台计算机上运行我的应用程序?

    如果对上述问题的回答是,那么(2)或(3)将是您的答案,因为将磁盘上的文件从一台机器移动到另一台机器是一项简单的任务。另一方面,将注册表项从一台机器移动到另一台机器对于普通计算机用户来说并不是一项简单的任务,在您的应用程序中编写函数的任务也不是将注册表数据库导出为平面文件并重新导入它们。

    在(2)和(3)中,(2)是最简单的Windows has existing APIs,以便为您获取文件的内容; (3)要求你编写自己的例程。最终,它将依赖于您希望如何构建数据。

    如果对上述问题的回答是,那么(1),(2)或(3)中的任何一个都是正常的,因为用户不关心数据是如何处理的存储

    上述策略都不比其他策略更少或更易于访问(如果您担心用户能够查看您的数据)。如果您担心数据可见,请在最终选择的方法中添加加密。