热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何编码流以便将其存储在xml文件中?-HowcanIencodeastreamsothatitcanbestoredinanxmlfile?

IamworkingwithQuantumGrid6fromDevexpress.Ineedtostorethegridssettingsinanxmlconfig

I am working with QuantumGrid 6 from Devexpress. I need to store the grids settings in an xml configuration file. Unfortunately, the grid does not allow XML as a storage option. I can however export the settings to a stream.

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

I'm thinking to export to a stream then convert the stream to text and store it as an xml value. I guess the text must only contain printable characters and it would be nice if it was compressed in some way.

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

Can somebody suggest a method of encoding the stream?

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

3 个解决方案

#1


3  

Use standard IdEncoderMIME / IdDecoderMime from the Indy Misc palette. You have some methods for encoding streams.

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

#2


3  

You can use SimpleStorage, a XML storage based framework I created. You can download it from here.

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

SimpleStorage Download

It was made to solve problems like yours. To do what you want you need a single line of code:

这是为了解决像你这样的问题。要做你想做的事,你需要一行代码:

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

Not only it automatically base64 encodes the data but it also supports filter so you can gzip on the fly.

它不仅自动base64编码数据,而且还支持过滤器,因此您可以动态gzip。

So with three lines of code you can do it all:

因此,使用三行代码,您可以完成所有操作:

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

SrcStorage:= CreateStorage('BinaryStorage'); SrcStorage.Ensure( '数据')过滤器( '的gzip')AsBinary.LoadFromStream(MemoryStream的)。; SrcStorage.SaveToFile( 'data.xml中');

It uses OmniXML a very good delphi XML library. You can find all info on the download page.

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

#3


0  

I have done this using DIMimeStreams, encoding to a tStringStream, then placing the stream.datastring as the text portion of a specific element. If you want to add encryption, then I would add the routines found in LockBox to encrypt the stream prior to the MIME step. The latest version of LockBox, compiled for 2009 is available on the songbeamer website. You can also compress using just about any compression routine which compresses to a stream, and then run through the mime step.

我使用DIMimeStreams,编码为tStringStream,然后将stream.datastring作为特定元素的文本部分。如果要添加加密,那么我将添加LockBox中找到的例程,以便在MIME步骤之前加密流。最新版本的LockBox,于2009年编制,可在songbeamer网站上找到。您也可以使用几乎任何压缩到流的压缩例程进行压缩,然后运行mime步骤。


推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
author-avatar
清雅竹gf_644
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有