[VBS]转换二进制数据为字符串常用办法
至少有三种以上办法,可以把二进制数据(比如您从ASP的Request.BinaryRead方法得到的数据)转换为字符串。
第一种:使用VBS的MultiByte 方法
实例:
SimpleBinaryToString(Binary)I, SI = 1 (Binary)S = S & (((Binary, I, 1)))SimpleBinaryToString = S
这个方法非常简单明了,但是处理大数据流时,比较慢。
建议只用来处理100KB以下的数据。
下面的这个类似的方法,性能稍微好些:
BinaryToString(Binary)cl1, cl2, cl3, pl1, pl2, pl3Lcl1 = 1cl2 = 1cl3 = 1L = (Binary)cl1<=Lpl3 = pl3 & (((Binary,cl1,1)))cl1 = cl1 + 1cl3 = cl3 + 1cl3>300 pl2 = pl2 & pl3pl3 = cl3 = 1cl2 = cl2 + 1cl2>200 pl1 = pl1 & pl2pl2 = cl2 = 1BinaryToString = pl1 & pl2 & pl3
BinaryToString方法比SimpleBinaryToString方法性能高20倍。
建议用来处理2MB以下的数据。
第二种方法:使用ADODB.Recordset
ADODB.Recordset 可以让你支持几乎所有VARIANT支持的数据类型,你可以用它在string和
binary之间转换。
RSBinaryToString(xBinary)Binaryvartype(xBinary)=8 Binary = MultiByteToBinary(xBinary) Binary = xBinaryRS, LBinaryadLongVarChar = 201RS = ()LBinary = (Binary)LBinary>0 RS.Fields.Append , adLongVarChar, LBinaryRS.OpenRS.AddNewRS().AppendChunk Binary RS.UpdateRSBinaryToString = RS()RSBinaryToString = RSBinaryToString 没有什么限制--除了物理内存之外。
这种处理方式是MultiByte方式的100倍!
你可以用它来处理高达100MB的数据!
这种转换方式,你也可以用来把MultiByte strings转换为String。下面这个
方法把MultiByte strings转换为Binary:
MultiByteToBinary(MultiByte)RS, LMultiByte, BinaryadLongVarBinary = 205RS = ()LMultiByte = (MultiByte)LMultiByte>0 RS.Fields.Append , adLongVarBinary, LMultiByteRS.OpenRS.AddNewRS().AppendChunk MultiByte & (0)RS.UpdateBinary = RS().GetChunk(LMultiByte)MultiByteToBinary = Binary
第三种:使用ADODB.Stream
这种方式是比较常用的:
Function Stream_BinaryToString(Binary, CharSet)adTypeText = 2adTypeBinary = 1BinaryStream BinaryStream = ()BinaryStream.Type = adTypeBinaryBinaryStream.OpenBinaryStream.Write BinaryBinaryStream.Position = 0BinaryStream.Type = adTypeText(CharSet) > 0 BinaryStream.CharSet = CharSetBinaryStream.CharSet = Stream_BinaryToString = BinaryStream.ReadText
要存储、获取二进制数据,从一个本地文件、上传的二进制数据文件或者ASP中,可以参考:
Pure and Huge ASP file upload with progress.。
Tip keywords: Binary, Byte, Array, VT_UI1, VT_ARRAY, BinaryWrite, BinaryRead, ChrB, InstrB, LeftB, MidB, RightB, ASP, VBS
COPYRIGHT AND PERMITTED USE
|
郑昀兼做翻译。转贴请注明出处。http://blog.csdn.net/zhengyun_ustc/archive/2004/04/29/12758.aspx
转载于:https://www.cnblogs.com/vboy/articles/172655.html
[VBS]转换二进制数据为字符串常用办法相关推荐
- java json转二进制数据_JSON字符串中的二进制数据 . 比Base64更好的东西
UTF-8的问题在于它不是最节省空间的编码 . 此外,一些随机二进制字节序列是无效的UTF-8编码 . 因此,您不能将随机二进制字节序列解释为某些UTF-8数据,因为它将是无效的UTF-8编码 . 这 ...
- oracle二进制转换字母,如何将oracle二进制数据转换为word文本
现在很多项目和技术支持在线编辑word文档.有控件的和javascript操作的.这里简单的推荐一个在线编辑word文档的控件. 地址:http://www.dianju.cn/p/weboffice ...
- [JavaScript]为JS处理二进制数据提供可能性的WEB API
写这篇博客的起源是在div.io上的一篇文章<你所不知道的JavaScript数组>by 小胡子哥下的评论中的讨论. 因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那 ...
- 字符串 - 二进制和文本字符串 - 探究
1.应用场景 主要用于探究字符串中的二进制和文本字符串,以及它们的区别和应用场景. 2.学习/操作 1.文档阅读 重要来自于与chatgpt的对话问答 以及其他技术文章 2.整理输出 2.1 是什么 ...
- 了解下C#由转换二进制所引起的思考
[导读]最近遇到很有意思转换二进制的问题,有部分童鞋俨然已了解,可能也有一部分童鞋没碰到过也就不知情,这里我们来深入学习下转换二进制所带来的问题. 在写此篇文章时,非常开心,收到再一次连任MVP的邮件 ...
- C#由转换二进制所引起的思考,了解下?
[导读]最近遇到很有意思转换二进制的问题,有部分童鞋俨然已了解,可能也有一部分童鞋没碰到过也就不知情,这里我们来深入学习下转换二进制所带来的问题. 在写此篇文章时,非常开心,收到再一次连任MVP的邮件 ...
- mysql 图片转为二进制_php 图片转为二进制数据的方法
在 mysql 数据库中是无法直接存放图片文件的,但如果将图片通过 php 程序转换成二进制数据就可以很轻松的存放到数据库中了.那么这篇文章就说一下,利用 php 将图片文件转换二进制数据的方法. p ...
- java字符串 直接能网络传输吗_atitit.二进制数据无损转字符串网络传输
atitit.二进制数据无损转字符串网络传输 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 gbk会造成信息丢失 由于有些字符在gbk字符集中找不到对应的字符,所以默认使用编码63 ...
- 二进制数据文件中的字符串替换的实现(C++)
文章目录 前言 一.项目环境 一.项目需求 二.思路分析 三.实现过程 1.字符串转十六进制字符 2.替换功能 总结 前言 在工作中遇到一个功能需求,就是读取一个资源文件,替换资源文件中某些字符,由于 ...
最新文章
- java开发 职业技能_java编程开发程序员需要具备哪些职业技能
- *[topcoder]IncrementingSequence
- python爬取苏州天气并用excel来保存
- Openresty 学习笔记(一)opm 工具的使用
- codewars--js--Happy numbers++无穷大判断
- Confluence 6 SQL 异常的问题解决
- mysql表误删回复_mysql数据库数据删除怎么恢复
- .net中的设计模式---单例模式
- 关于Linux下使用Windows应用程序的尝试总结
- 【C++】 29_类中的函数重载
- flightgear通过UDP协议输出飞行态势数据以及利用C++接收flightgear数据
- IDEA使用教程汇总
- php smarty key,php Smarty模版详解
- 树莓派入门(二)—— 系统安装前格式化TF卡
- 检查型异常有哪些java_JAVA系列之检查型异常与非检查型异常的详解
- svchost.exe占用cpu过高怎么处理(原因及解决办法)
- 第一次写正规论文的同学务必分享,排版自动排版,加注释。。。。。。等等!!!!!!!!(copy也得整出档次来啊,这就是门面啊)
- 苹果ipad找不到服务器怎么办,找不到网络怎么办 ipad无法加入无线网络解决方法【详解】...
- 有关shape文件的说明
- 华为最新5G V2X高级使用案例曝光,未来交通是这样的!