找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 10793|回复: 2

[问题求助] 求VBS脚本快捷的二进制读写

[复制链接]
发表于 2023-3-18 10:43:13 | 显示全部楼层 |阅读模式
我要把一个二进制文件每一个byte都写入一个txt里
如二进制文件为:
682669BC1A2B
那我就要输出到txt
104
38
105
188
26
43
请问怎么高效地输出?
或是换一种方式?
  1. a=timer
  2. Set ado = CreateObject("adodb.stream")
  3. Set fso = CreateObject("scripting.filesystemobject")
  4. Set file = fso.OpenTextFile("049.txt",2,True)
  5. ado.Type = 1
  6. ado.Open
  7. ado.LoadFromFile("049.xxx")
  8. Do Until ado.EOS
  9. file.Write ascb(ado.Read(1))&" "
  10. Loop
  11. ado.Close
  12. msgbox timer-a
复制代码
这样一个4兆的文件都要28秒,而且狂耗cpu
应该就是耗在ascb上面

或者能不能换一种“加密”方式
就是让不能直接打开就行了
求了……
发表于 2023-3-18 10:47:18 | 显示全部楼层
  1. '示例:以二进制数据对文件进行Base64编码和解码,不能是0字节的空文件
  2. Dim oStream, file, oNode, s

  3. file = "1.txt"

  4. 'base64编码
  5. Set oStream = CreateObject("ADODB.Stream")
  6. oStream.Type = 1    'adTypeBinary
  7. oStream.Mode = 3    'adModeReadWrite
  8. oStream.Open()
  9. oStream.LoadFromFile file
  10. Set oNode = CreateObject("Msxml2.DOMDocument").CreateElement("base64")
  11. oNode.DataType = "bin.base64"
  12. oNode.nodeTypedValue = oStream.Read()
  13. oStream.Close()
  14. Wsh.Echo oNode.Text

  15. 'base64解码
  16. s = oNode.Text
  17. Set oNode = CreateObject("Msxml2.DOMDocument").CreateElement("base64")
  18. oNode.DataType = "bin.base64"
  19. oNode.Text = s
  20. Set oStream = CreateObject("ADODB.Stream")
  21. oStream.Type = 1    'adTypeBinary
  22. oStream.Mode = 3    'adModeReadWrite
  23. oStream.Open()
  24. oStream.Write oNode.nodeTypedValue
  25. oStream.SaveToFile file, 2    'adSaveCreateOverWrite
  26. oStream.Close()

  27. MsgBox "ok"
复制代码

评分

参与人数 1技术 +1 收起 理由
jyswjjgdwtdtj + 1 谢谢!

查看全部评分

 楼主| 发表于 2023-3-18 11:15:13 | 显示全部楼层
回复 2# czjt1234


    牛逼!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:47 , Processed in 0.019391 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表