3

我正在使用 Devexpress 的 QuantumGrid 6。我需要将网格设置存储在 xml 配置文件中。不幸的是,网格不允许 XML 作为存储选项。但是,我可以将设置导出到流中。

我正在考虑导出到流,然后将流转换为文本并将其存储为 xml 值。我猜文本必须只包含可打印的字符,如果以某种方式压缩它会很好。

有人可以建议一种编码流的方法吗?

4

3 回答 3

3

使用 Indy Misc 调色板中的标准 IdEncoderMIME / IdDecoderMime。你有一些编码流的方法。

于 2009-07-18T10:40:20.880 回答
3

您可以使用我创建的基于 XML 存储的框架 SimpleStorage。你可以在这里下载。

简单存储下载

它是为了解决像你这样的问题。要执行您想要的操作,您需要一行代码:

SrcStorage.Ensure('Data').Filter('gzip').AsBinary.LoadFromStream(MemoryStream);

它不仅会自动对数据进行 base64 编码,而且还支持过滤器,因此您可以即时 gzip。

因此,只需三行代码,您就可以完成所有工作:

SrcStorage := CreateStorage('BinaryStorage'); SrcStorage.Ensure('Data').Filter('gzip').AsBinary.LoadFromStream(MemoryStream); SrcStorage.SaveToFile('Data.xml');

它使用 OmniXML 一个非常好的 delphi XML 库。您可以在下载页面上找到所有信息。

于 2009-07-18T14:50:53.803 回答
0

我使用DIMimeStreams完成了这项工作,编码为 tStringStream,然后将 stream.datastring 作为特定元素的文本部分。如果您想添加加密,那么我将添加LockBox中的例程以在 MIME 步骤之前加密流。为 2009 年编译的最新版本的 LockBox 可在songbeamer网站上获得。您还可以使用几乎任何压缩为流的压缩例程进行压缩,然后运行 ​​mime 步骤。

于 2009-07-20T15:31:18.680 回答