Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我想创建一个桌面应用程序,具有类似数据库的搜索功能,但没有SQL数据库_Windows_Search_Desktop Application_Key Value_No Database - Fatal编程技术网

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

Windows 我想创建一个桌面应用程序,具有类似数据库的搜索功能,但没有SQL数据库,windows,search,desktop-application,key-value,no-database,Windows,Search,Desktop Application,Key Value,No Database,我知道基本的SQL,当涉及到存储和检索数据时,SQL是我所知道的全部。我想创建1.exe,它应该包含所有~100000个键值对(我有.txt文件中的数据),可能还有一个额外的属性用于描述(我将自己添加这个属性,就像给自己写个注释一样) 我也想用一种我还不知道的新语言来写它;像python或C#(我已经用Java和VB.net编写了桌面应用程序,所有应用程序都带有SQL数据库)。因此,语言将不是一个问题,我将感谢您的建议 这些键值对可能不需要更新,我愿意重新编译/重新打包代码以对数据进行1次更改。

我知道基本的SQL,当涉及到存储和检索数据时,SQL是我所知道的全部。我想创建1.exe,它应该包含所有~100000个键值对(我有.txt文件中的数据),可能还有一个额外的属性用于描述(我将自己添加这个属性,就像给自己写个注释一样)

我也想用一种我还不知道的新语言来写它;像python或C#(我已经用Java和VB.net编写了桌面应用程序,所有应用程序都带有SQL数据库)。因此,语言将不是一个问题,我将感谢您的建议

这些键值对可能不需要更新,我愿意重新编译/重新打包代码以对数据进行1次更改。键长6个字母,末尾有2个数字,如
hxnaaa01
。这些字母中的每一个都代表或描述了它自身的一些东西,所以我还需要在特定的位置上搜索一个特定的字母,以获得我所需要的东西

我知道正则表达式可以很好地满足我的需要,但我所提到的就是我所知道的。我知道的还不够多,我也不知道谷歌的关键词是什么

我读过XML和CSV。我真的不知道它们是什么,我也不确定如何将所有这些放在一个可执行文件中

总而言之,我需要:

  • 1个可执行文件(Windows桌面应用程序)
  • 搜索功能~100k KVP+1更多属性(使用正则表达式?)
  • 没有数据库
  • 用GUI
  • 能够向每个KVP添加“注释”
  • 应该是快速和轻便的
1个可执行文件(Windows桌面应用程序),无数据库

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

您还有另一个要求:“快速、轻巧”

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

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

对于JSON[1],您需要创建一个额外的文件来包含所有的键/值对,您可以使用C#来创建额外的文件(例如,在第一次启动时)

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

JSON非常可读:

{
  "key": "value",
  "comment": "oh this is cool"
}
有很多因素影响着速度和重量,所以你需要做一些研究

老实说,根据你的经验,我不会把太多的精力放在快速上,我会把更多的精力放在它的工作上,然后把它重构成快速的东西,如果它太慢的话。[2]

同样,根据您的经验,我会坚持打开文件,使用for/loop查找我的密钥,并对找到的数据进行处理,此外,还将奖励自己拥有一些有效的东西

TL;DR:您需要一个文件或数据库来实现真正的持久性存储,JSON或远程托管的MySQL都可以。在你做一些有效的事情之前,尽量不要把太多精力放在快速上

  • [1]
  • [2]
1个可执行文件(Windows桌面应用程序),无数据库

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

您还有另一个要求:“快速、轻巧”

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

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

对于JSON[1],您需要创建一个额外的文件来包含所有的键/值对,您可以使用C#来创建额外的文件(例如,在第一次启动时)

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

JSON非常可读:

{
  "key": "value",
  "comment": "oh this is cool"
}
有很多因素影响着速度和重量,所以你需要做一些研究

老实说,根据你的经验,我不会把太多的精力放在快速上,我会把更多的精力放在它的工作上,然后把它重构成快速的东西,如果它太慢的话。[2]

同样,根据您的经验,我会坚持打开文件,使用for/loop查找我的密钥,并对找到的数据进行处理,此外,还将奖励自己拥有一些有效的东西

TL;DR:您需要一个文件或数据库来实现真正的持久性存储,JSON或远程托管的MySQL都可以。在你做一些有效的事情之前,尽量不要把太多精力放在快速上

  • [1]
  • [2]

您考虑过JSON吗?它允许您将数据存储为对象,包含属性和值(键/值),然后您可以决定如何组织数据,添加额外的属性(ex的说明)。甚至SQLite?但是,物理文件通常不适合快速或轻量级应用。@我刚刚从另一个文件中了解到,当只使用一个文件时(至少对于SQLite),不可能有持久的db。必须存在除.exe以外的其他文件。这是正确的吗?还有别的办法吗?JSON会在1.exe文件中实现吗?我会把它换成几MB大小,只要它是闪电般的快。JSON不是一个数据库,它是一种格式,所以提供您的编程语言可以支持它,那么应该没有问题。当你发布一个链接参考