Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
C# Ini解析器不';我无法读取整个文件_C#_Wpf_Ini - Fatal编程技术网

C# Ini解析器不';我无法读取整个文件

C# Ini解析器不';我无法读取整个文件,c#,wpf,ini,C#,Wpf,Ini,我有一个WPF应用程序和我用来读取和更改ini文件中的值的库一起使用 这个库的问题是,当我打开它时,它不会读取整个文件,例如,原始ini文件有16629991个字符,当使用ini解析器函数iniData=iniParser.ReadFile(IniFile)打开时它只能读取11701685个字符 同样在将数据保存到ini文件后,ini从16248 kb缩小到11230 kb 我用于更改ini文件中的值的示例代码 foreach (var Section in ItemsList) {

我有一个WPF应用程序和我用来读取和更改ini文件中的值的库一起使用

这个库的问题是,当我打开它时,它不会读取整个文件,例如,原始ini文件有16629991个字符,当使用ini解析器函数
iniData=iniParser.ReadFile(IniFile)打开时它只能读取11701685个字符

同样在将数据保存到ini文件后,ini从16248 kb缩小到11230 kb

我用于更改ini文件中的值的示例代码

foreach (var Section in ItemsList)
{ 
    iniData[Section]["1"] = "ccc"; // replace with ccc
}
iniParser.WriteFile(IniFile, iniData); // write to opened ini file
配置

iniParser.Parser.Configuration.AllowDuplicateKeys = true;
iniParser.Parser.Configuration.AllowDuplicateSections = true;
iniParser.Parser.Configuration.AssigmentSpacer = "";
我在文档中找不到的配置选项中可以设置的文件大小是否有任何限制,或者可能导致此问题的其他原因


下面是

为什么您有这么大的ini文件?为什么不使用数据库?@Silvermind ini文件来自一个旧游戏,如果我更改了它的内容或大小(除了指定部分下的键1),那么我在游戏中就看不到任何项目了。@Mario您是否考虑过创建自己的实现来解析这个大文件,而不是使用库
ini
文件通常非常小。您也可以尝试自定义行为,就像在@ PaveliikHooKi中所陈述的,我没有考虑为自己解析函数,因为这个库中除了打开、读取整个文件外都是工作的。但如果我找不到任何解决办法,我想我需要自己解决。我还尝试了许多其他的win api,但问题是foreach中的每一行都会写入,这使得它非常慢,因为大约有3000个项需要重命名,重命名所有项大约需要几分钟,而ini解析器只需要不到一分钟的时间。您可以尝试拆分文件,然后将其与ini解析器合并。是否确定文件未损坏,请尝试设置
配置。SkipInvalidLines=true