[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
OF http://www.pstruh.cz/tips WEBSITE.

The entire contents of PSTRUH Software website consist of copyright material owned by Antonin Foller, PSTRUH Software.

 
郑昀兼做翻译。转贴请注明出处。http://blog.csdn.net/zhengyun_ustc/archive/2004/04/29/12758.aspx

转载于:https://www.cnblogs.com/vboy/articles/172655.html

[VBS]转换二进制数据为字符串常用办法相关推荐

  1. java json转二进制数据_JSON字符串中的二进制数据 . 比Base64更好的东西

    UTF-8的问题在于它不是最节省空间的编码 . 此外,一些随机二进制字节序列是无效的UTF-8编码 . 因此,您不能将随机二进制字节序列解释为某些UTF-8数据,因为它将是无效的UTF-8编码 . 这 ...

  2. oracle二进制转换字母,如何将oracle二进制数据转换为word文本

    现在很多项目和技术支持在线编辑word文档.有控件的和javascript操作的.这里简单的推荐一个在线编辑word文档的控件. 地址:http://www.dianju.cn/p/weboffice ...

  3. [JavaScript]为JS处理二进制数据提供可能性的WEB API

    写这篇博客的起源是在div.io上的一篇文章<你所不知道的JavaScript数组>by 小胡子哥下的评论中的讨论. 因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那 ...

  4. 字符串 - 二进制和文本字符串 - 探究

    1.应用场景 主要用于探究字符串中的二进制和文本字符串,以及它们的区别和应用场景. 2.学习/操作 1.文档阅读 重要来自于与chatgpt的对话问答 以及其他技术文章 2.整理输出 2.1 是什么 ...

  5. 了解下C#由转换二进制所引起的思考

    [导读]最近遇到很有意思转换二进制的问题,有部分童鞋俨然已了解,可能也有一部分童鞋没碰到过也就不知情,这里我们来深入学习下转换二进制所带来的问题. 在写此篇文章时,非常开心,收到再一次连任MVP的邮件 ...

  6. C#由转换二进制所引起的思考,了解下?

    [导读]最近遇到很有意思转换二进制的问题,有部分童鞋俨然已了解,可能也有一部分童鞋没碰到过也就不知情,这里我们来深入学习下转换二进制所带来的问题. 在写此篇文章时,非常开心,收到再一次连任MVP的邮件 ...

  7. mysql 图片转为二进制_php 图片转为二进制数据的方法

    在 mysql 数据库中是无法直接存放图片文件的,但如果将图片通过 php 程序转换成二进制数据就可以很轻松的存放到数据库中了.那么这篇文章就说一下,利用 php 将图片文件转换二进制数据的方法. p ...

  8. java字符串 直接能网络传输吗_atitit.二进制数据无损转字符串网络传输

    atitit.二进制数据无损转字符串网络传输 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 gbk会造成信息丢失 由于有些字符在gbk字符集中找不到对应的字符,所以默认使用编码63 ...

  9. 二进制数据文件中的字符串替换的实现(C++)

    文章目录 前言 一.项目环境 一.项目需求 二.思路分析 三.实现过程 1.字符串转十六进制字符 2.替换功能 总结 前言 在工作中遇到一个功能需求,就是读取一个资源文件,替换资源文件中某些字符,由于 ...

最新文章

  1. java开发 职业技能_java编程开发程序员需要具备哪些职业技能
  2. *[topcoder]IncrementingSequence
  3. python爬取苏州天气并用excel来保存
  4. Openresty 学习笔记(一)opm 工具的使用
  5. codewars--js--Happy numbers++无穷大判断
  6. Confluence 6 SQL 异常的问题解决
  7. mysql表误删回复_mysql数据库数据删除怎么恢复
  8. .net中的设计模式---单例模式
  9. 关于Linux下使用Windows应用程序的尝试总结
  10. 【C++】 29_类中的函数重载
  11. flightgear通过UDP协议输出飞行态势数据以及利用C++接收flightgear数据
  12. IDEA使用教程汇总
  13. php smarty key,php Smarty模版详解
  14. 树莓派入门(二)—— 系统安装前格式化TF卡
  15. 检查型异常有哪些java_JAVA系列之检查型异常与非检查型异常的详解
  16. svchost.exe占用cpu过高怎么处理(原因及解决办法)
  17. 第一次写正规论文的同学务必分享,排版自动排版,加注释。。。。。。等等!!!!!!!!(copy也得整出档次来啊,这就是门面啊)
  18. 苹果ipad找不到服务器怎么办,找不到网络怎么办 ipad无法加入无线网络解决方法【详解】...
  19. 有关shape文件的说明
  20. 华为最新5G V2X高级使用案例曝光,未来交通是这样的!

热门文章

  1. neo4j remove
  2. it项目经理成长手记 mobi_步入IT行业的心路历程
  3. vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍
  4. 20年的老程序员对新入行的朋友的一些建议
  5. php fizz,php 的 FizzBuzzWhizznbsp;nbsp;
  6. Linux硬链接和软链接
  7. 关于SO引用的过滤:abiFilters
  8. CSS3 background-clip属性
  9. 3星|《增长黑客》:增长黑客是一个牵强的概念
  10. 如何使用GitLab和Rancher构建CI/CD流水线–Part 1