2009-02-13 10 views
0

Je veux créer manuellement un script binaire, puis l'enregistrer en tant que fichier binaire.Comment créer un tableau binaire dans VbScript?

Je veux ajouter tous les octets suivants et créer un fichier binaire parmi eux.

&HF0 
&HF1 
&HF2 

Je veux pouvoir faire quelque chose comme ceci:

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

Mais évidemment As Byte ne fonctionne pas sur Vbscript. J'utilise la fonction suivante pour écrire tableau binaire sur le disque (au moins je vais quand je en mesure de créer un tableau binaire)

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 

Répondre

1

Je l'ai vu quelque chose le long de ces lignes utilisées:

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 
+0

Exactement ce que je cherchais! À votre santé –

Questions connexes