gpt4 book ai didi

vbscript - 如何在 VBScript 中将二进制数据写入磁盘?

转载 作者:行者123 更新时间:2023-12-02 19:31:48 26 4
gpt4 key购买 nike

我有一个二进制字符串需要写入文件。我有一种感觉,这个应该是一个简单的程序,但话又说回来,VBScript。 FileSystemObject 没有任何帮助,因为它会破坏数据。 Stream 对象看起来很有前途,它具有 adBinaryMode 及其 Write 方法,但 Write 方法需要字节数组并且似乎不会接受变体数组。由于 VBScript 数组都是变体数组,因此这似乎是有问题的。

那么,如何将数据写入文件?

编辑:我应该补充一点,整个事情必须是 VBScript。没有额外的组件。抱歉,我也不喜欢。

最佳答案

也可以使用普通的FileSystemObject,这是我在很久以前编写的自定义上传脚本中使用的代码,使用我在网上找到的将二进制字符串转换为 ASCII 的代码:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("file path here")
objFile.Write(RSBinaryToString(strBinaryContents))
objFile.Close
Set objFile=Nothing
Set objFSO=Nothing

Private Function RSBinaryToString(xBinary)
'Antonin Foller, http://www.motobit.com
'RSBinaryToString converts binary data (VT_UI1 | VT_ARRAY Or MultiByte string)
'to a string (BSTR) using ADO recordset

Dim Binary
'MultiByte data must be converted To VT_UI1 | VT_ARRAY first.
If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary

Dim RS, LBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)

If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
RSBinaryToString = RS("mBinary")
Else
RSBinaryToString = ""
End If
End Function

Function MultiByteToBinary(MultiByte)
'© 2000 Antonin Foller, http://www.motobit.com
' MultiByteToBinary converts multibyte string To real binary data (VT_UI1 | VT_ARRAY)
' Using recordset
Dim RS, LMultiByte, Binary
Const adLongVarBinary = 205
Set RS = CreateObject("ADODB.Recordset")
LMultiByte = LenB(MultiByte)
If LMultiByte>0 Then
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
RS.Open
RS.AddNew
RS("mBinary").AppendChunk MultiByte & ChrB(0)
RS.Update
Binary = RS("mBinary").GetChunk(LMultiByte)
End If
MultiByteToBinary = Binary
End Function

关于vbscript - 如何在 VBScript 中将二进制数据写入磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5586158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com