Как создать BinaryArray в VbScript? - PullRequest
1 голос
/ 14 февраля 2009

Я хочу вручную создать двоичный скрипт и затем сохранить его как двоичный файл.

Я хочу добавить все следующие байты и создать из них двоичный файл.

&HF0
&HF1
&HF2

Я хочу иметь возможность сделать что-то вроде этого:

Dim generateData(3) As Byte
generateData(0) = &HFF
generateData(1) = &HFE
generateData(2) = &HFC

Но, очевидно, Как байт не работает на Vbscript. Я использую следующую функцию для записи двоичного массива на диск (по крайней мере, когда смогу создать двоичный массив)

Function SaveBinaryData(FileName, ByteArray)
  Const adTypeBinary = 1
  Const adSaveCreateOverWrite = 2

  'Create Stream object
  Dim BinaryStream
  Set BinaryStream = CreateObject("ADODB.Stream")

  'Specify stream type - we want To save binary data.
  BinaryStream.Type = adTypeBinary

  'Open the stream And write binary data To the object
  BinaryStream.Open
  BinaryStream.Write ByteArray

  'Save binary data To disk
  BinaryStream.SaveToFile FileName, adSaveCreateOverWrite
End Function

1 Ответ

1 голос
/ 14 февраля 2009

Я видел что-то вроде этого:

Sub WriteBinary(FileName, Buf)  

    Dim I, aBuf, Size, bStream  

    Size = UBound(Buf): ReDim aBuf(Size \ 2)  

    For I = 0 To Size - 1 Step 2  

        aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))  

    Next  

    If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))  

    aBuf=Join(aBuf, "")  

    Set bStream = CreateObject("ADODB.Stream")  

    bStream.Type = 1: bStream.Open  

    With CreateObject("ADODB.Stream")  

        .Type = 2 : .Open: .WriteText aBuf  

        .Position = 2: .CopyTo bStream: .Close  

    End With  

    bStream.SaveToFile FileName, 2: bStream.Close  

    Set bStream = Nothing  

End Sub
...