我想创建一个具有类似数据库的搜索功能但没有 SQL 数据库的桌面应用程序

I want to create a desktop app with database-like search functions but without the SQL database

我知道基本的 SQL,而 SQL 是我在存储和检索数据方面所知道的全部。我想创建 1 个 .exe,它应该包含所有 ~100,000 个键值对(我在 .txt 文件中有数据),也许还有一个额外的描述属性(我会自己添加 - 就像给自己的便条)。

我也想用我还不会的新语言来写;像 python 或 C#(我用 Java 和 VB.net 编写的桌面应用程序都带有 SQL 数据库)。所以语言不会成为问题,我会很感激你的建议。

这些键值对可能不需要更新,我愿意 re-compile/repackage 代码对数据进行 1 次更改。密钥长度为 6 个字母,末尾有 2 个数字,如 hxnaaa01。这些字母中的每一个都代表或描述了一些关于它自己的东西,所以我还需要在特定位置搜索特定字母才能准确获得我需要的东西。

我知道正则表达式可以很好地满足我的需要,但我所提到的只是我所知道的。我知道的不够,我不知道google.

的关键字是什么

我已阅读有关 XML 和 CSV 的内容。我真的不知道它们是什么,我不确定所有这些如何适合 1 个可执行文件。

总而言之,我需要:

1 executable (Windows Desktop App), no database

数据持久化将需要额外的文件或数据库。这几乎是不可避免的,您 可以 将数据存储在内存中,但它只会在内存中持续存在。

您还有一个要求:"fast and lightweight"。

要达到这个要求,您需要真正考虑您的解决方案、您使用的技术以及将来如何改进它。

尽管搜索数据非常简单,但高效的解决方案却并非如此。它需要对算法、数据结构和一般实践进行前期研究。 (这本身就是一个兔子洞)。

在 JSON [1] 的情况下,您需要创建一个额外的文件来包含所有 key/value 对,您可以使用 C# 创建额外的文件(首先例如发射)。

JSON 承诺是轻量级的,我倾向于同意,有些人可能不同意。在处理文件系统时,我认为可以同意的是通常远离轻量级解决方案。

JSON 虽然可读性很强:

{
  "key": "value",
  "comment": "oh this is cool"
}

有很多因素可以影响速度和轻量级,因此您需要进行一些研究。

老实说,根据您的经验,我不会太关注 快速,我会更关注它的工作,然后将其重构为 fast 如果太慢。 [2]

再一次,根据您的经验,我会坚持打开文件,使用 for/loop 找到我的密钥并对找到的数据做一些事情,并奖励自己有一些有用的东西。

TL;DR:您需要一个文件或数据库来实现真正的持久存储,JSON 或远程托管的 MySQL 都可以。在你拥有有效.

的东西之前,尽量不要过分关注快速