gpt4 book ai didi

c# - 是否有可用于查看和编辑大型 xml (100meg++) 的有效 .Net Forms 控件

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:26 26 4
gpt4 key购买 nike

我正在开发一个应用程序 (C#.Net 2008),它创建一些大约 100 兆的大型 XML 文件。我知道最终这些文件应该保持较小以提高效率但不幸的是这些文件需要是连续的(1 个文件)。我希望能够在创建后查看、编辑和保存对这些文件的更改,但是到目前为止,我还无法找到不会在加载这些文件时挂起的 richtextbox 或 treeview 的表单控件。我已经花了大约 3 天时间尝试不同的控件和解决方案,但没有成功。我最接近的是使用 Scintilla 和以下

using (TextReader reader = new StreamReader(myFilePath, Encoding.UTF8)) 
{scintillaDocument.Text = reader.ReadToEnd(); }

这让我可以加载其中一个大文件,但是当我尝试刷新文件时,我又遇到了内存不足的问题。

我知道可以做到 - TextPad 是一个很好的例子,但我宁愿使用嵌入式控件。

最佳答案

这个问题在 XML 中反复出现;是的,底线是您真的不想拥有这么大的 XML 文件。

您可以自己实现一个严格基于文本的编辑器,它会分段读取文件(如上所述)。撇开 - 如果你想要某种类似 TreeView 的表示,那么恐怕你几乎无法预先阅读和解析整个文件。正如您所指出的,更新将是最棘手的。一般的方法可能是寻找文件中正在编辑的部分,并从该点开始用新修改的部分覆盖文件,然后从那时起,文件中原始部分之后的所有部分“当前”部分。这仍然会很慢,但是您不会遇到内存不足的异常。

.Net 提供了 XmlTextReaderXmlTextWriter ,它与流一起工作,并检查 XML 是否格式正确。这可能是读取和写入 XML 数据的最佳方式。

关于c# - 是否有可用于查看和编辑大型 xml (100meg++) 的有效 .Net Forms 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7113536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com