我知道基本的SQL,在存储和检索数据时我只知道SQL。我想创建1个.exe,它应该包含所有约100,000个键值对(我在.txt文件中有数据),也许还有一个额外的描述属性(我会加我自己-像是给自己的便条)。
我还想用一种我不知道的新语言来编写它;像python或C#(我已经用Java和VB.net编写了所有带有SQL数据库的桌面应用程序)。所以语言不会成为问题,我希望提出建议。
这些键值对可能不需要更新,我愿意重新编译/重新打包代码以对数据进行1次更改。密钥长6个字母,末尾2个数字,例如hxnaaa01
。这些字母中的每个字母都代表或描述了自己的某些东西,因此我还需要在特定位置上搜索特定字母以准确获得我所需要的。
我知道正则表达式可以很好地满足我的需求,但是我所提到的只是我所知道的。我了解得还不够,我也不知道谷歌使用哪些关键字。
我已经阅读了有关XML和CSV的文章。我真的不知道它们是什么,我不确定所有这些如何适合1个可执行文件。
总结,我需要:
1个可执行文件(Windows桌面应用程序),没有数据库
数据持久性将需要其他文件或数据库。这几乎是不可避免的,您可以将数据存储在内存中,但是只保留到内存中就可以了。
您还有另一个要求:“快速且轻巧”。
要实现此要求,您需要真正考虑您的解决方案,使用的技术以及将来如何改进它。
尽管搜索数据非常简单,但有效的解决方案却并非如此。它需要对算法,数据结构和一般实践进行前期研究。 (它本身就是一个兔子洞)。
对于JSON [1],您需要创建一个包含所有键/值对的附加文件,您可以使用C#创建该附加文件(例如,首次启动时。)>
JSON承诺是轻量级的,我倾向于同意,有些可能不会。在处理文件系统时,我认为通常可以从轻量级解决方案中获得同意。
尽管JSON非常易读:{
"key": "value",
"comment": "oh this is cool"
}
[快速,轻巧的因素很多,因此您需要进行一些研究。(如果太慢的话)。 [2]同样,根据您的经验,我会坚持打开文件,使用for / loop来查找我的密钥,并对发现的数据进行某些处理,并奖励自己拥有有效的方法。老实说,根据您的经验,我不会过多地关注
fast
,我会更多地关注它的工作,然后将其重构为fast
TL; DR:您需要文件或数据库来进行真正的持久存储,JSON或远程托管的MySQL都可以使用。在您拥有
工作之前,请不要过多地专注于fast
。