【发布时间】:2020-05-11 01:24:13
【问题描述】:
我知道基本的 SQL,而且在存储和检索数据方面我只知道 SQL。我想创建 1 个 .exe,它应该包含所有 ~100,000 个键值对(我在 .txt 文件中有数据),也许还有一个额外的描述属性(我会自己添加 - 就像给自己的注释一样)。
我也想用一种我还不知道的新语言来写它;像 python 或 C#(我用 Java 和 VB.net 编写的桌面应用程序都使用 SQL 数据库)。所以语言不是问题,我会很感激建议。
这些键值对可能不需要更新,我愿意重新编译/重新打包代码以对数据进行 1 次更改。密钥长 6 个字母,末尾有 2 个数字,如 hxnaaa01。这些字母中的每一个都代表或描述了自己的某些东西,因此我还需要在特定位置搜索特定字母才能得到我需要的东西。
我知道正则表达式可以很好地满足我的需求,但我所提到的只是我所知道的。我知道的不够多,也不知道用什么关键词去google。
我已阅读有关 XML 和 CSV 的信息。我真的不知道它们是什么,我不确定所有这些如何适合 1 个可执行文件。
总而言之,我需要:
- 1 个可执行文件(Windows 桌面应用程序)
- 搜索功能 ~100k KVP+1more 属性(使用正则表达式?)
- 没有数据库
- 带有图形用户界面
- 能够为每个 KVP 添加“注释”
- 应该是快速和轻量级的
【问题讨论】:
-
你考虑过 JSON 吗?它允许您将数据存储为对象,包含属性和值(键/值),然后您可以决定如何组织它,添加额外的属性(ex 的描述)。甚至 SQLite?但是,物理文件通常不适合快速或轻量级。
-
@Isolated 我刚刚从另一个question 中读到,仅使用 1 个文件(至少对于 SQLite)是不可能拥有持久数据库的。除了 .exe 之外,还必须有另一个文件。它是否正确?还有其他方法吗? JSON 会在 1 个 .exe 文件中执行吗?
-
只要速度快,我愿意换成几 MB 大。
-
JSON 不是数据库,它是一种格式,因此如果您的编程语言可以支持它,那么应该没有问题。当您发布引用 C# 的链接时,我会想象您会使用它。我建议您看看这里:docs.microsoft.com/en-us/dotnet/standard/serialization/… 但是,您无法避免存在其他文件,如果除了 .exe 之外您根本没有任何文件,那么内存中是您唯一的选择,或者是远程的。
-
@Isolated 不能将 JSON 或文本文件打包在 exe 中吗?您是说要使数据持久化,例如 starring(添加到收藏夹)一个特定的 KVP,就意味着多个文件?
标签: windows search desktop-application key-value no-database