C# 存储运行时必须使用的数据
小结:如何最好地存储运行时需要访问的数据(但不存储在内存中),而不使其他人难以编辑数据 我一直在研究几种不同的方法来存储必须在运行时访问的数据,但没有一种解决方案与我的问题相关。如果在读了这篇文章后,你看到另一篇文章回答了我的问题,请把我链接到它,我很乐意去看看 我正在创建一个程序来修改一些视频游戏。这款应用背后的主要理念是在游戏更新方面的灵活性。这意味着我必须使存储所有地址的文件易于每个人访问。目前,我将数据存储在文本文件中,如下所示:C# 存储运行时必须使用的数据,c#,sql,performance,runtime,C#,Sql,Performance,Runtime,小结:如何最好地存储运行时需要访问的数据(但不存储在内存中),而不使其他人难以编辑数据 我一直在研究几种不同的方法来存储必须在运行时访问的数据,但没有一种解决方案与我的问题相关。如果在读了这篇文章后,你看到另一篇文章回答了我的问题,请把我链接到它,我很乐意去看看 我正在创建一个程序来修改一些视频游戏。这款应用背后的主要理念是在游戏更新方面的灵活性。这意味着我必须使存储所有地址的文件易于每个人访问。目前,我将数据存储在文本文件中,如下所示: 0x00000000 Description 然后,我
0x00000000 Description
然后,我的应用程序将文本文件加载到字典列表中,使用前8个字符(有一个删除0x的检查,并确保该值能够被解析)作为uint值,行的其余部分存储为键(每个键都是唯一的,有一个检查确保没有重复项)。这在一开始运行良好,但存储的数据量越来越大,应用程序无法处理。我得到堆栈溢出,否则数据就无法存储。我想知道的是,如何存储数据,以便在程序运行时有效地访问数据?我研究过sql数据库,但我担心人们在编辑它们时会遇到困难(包括我自己,我只使用过一次sql数据库),或者性能可能会很慢。如果不是这样的话,我希望能举一个小例子来说明如何做到这一点。任何建议都将不胜感激,谢谢
这是用于加载信息的当前代码(我认为不需要它,但如果你想看看我在做什么,你就去吧)
我建议您使用SQL或Access数据库。即使是初学者也很容易操作。其他人编辑它们没有问题,它们的表现超出了你的想象。只需一点代码片段(例如,文本或CSV),就可以非常轻松地导出任何类型的数据。您只需要学习基本的SQL查询和一些简单的C代码即可使用它们。在许多教授C#和C#的普通书籍中,你可能会找到一个初学者数据库程序。我自己通过Deitel和Deitel Visual Basic 6学习了数据库编程:如何编程。别那么做,那是很久以前的事了。有关C#或任何您可以检查的语言的基本示例。欢迎来到强大的数据库编程和SQL世界。使用数据库。创建一个管理软件,允许用户舒适地调整数据。与数据库一致。另一个选项可能是XML(可能加载多个文件)@meilke表示SQL、Access或任何常规类型?@user2795977请原谅非特定的答案:这取决于很多事情。。。
using (r)
{
int counterSuccess = 0;
int counterFailed = 0;
while ((origString = r.ReadLine()) != null)
{
if (origString.Length >= 8)
{
if (origString.StartsWith("0x", StringComparison.CurrentCultureIgnoreCase))
{
origString = origString.Substring(2);
}
parseSuccess = uint.TryParse(origString.Substring(0, 8), System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.CurrentCulture, out addr);
addrIdentifier = origString.Remove(0, 8);
addrIdentifier = addrIdentifier.Trim();
if (!parseSuccess)
{
counterFailed++;
}
else if (parseSuccess)
{
Addresses.Add(addrIdentifier, addr);
counterSuccess++;
}
}
}
r.Close();