Board logo

标题: [问题求助] 求VBS脚本快捷的二进制读写 [打印本页]

作者: jyswjjgdwtdtj    时间: 2023-3-18 10:43     标题: 求VBS脚本快捷的二进制读写

我要把一个二进制文件每一个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上面

或者能不能换一种“加密”方式
就是让不能直接打开就行了
求了……
作者: czjt1234    时间: 2023-3-18 10:47

  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"
复制代码

作者: jyswjjgdwtdtj    时间: 2023-3-18 11:15

回复 2# czjt1234


    牛逼!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2