広告

2014年7月23日水曜日

VBScriptでbyte配列を扱う方法


ADODB.streamをVBScriptから呼び出す場合等、VBScript(あるいはClassic ASP)内でbyte配列を扱いたい場合があります。

Write メソッド
パラメータ Buffer 書き込むバイトの配列を含むバリアント型 (Variant) の値を指定します。 ...







例えば、上記のWriteメソッドの引数としてバリアント型にbyte配列を格納して渡して上げる必要がありますが、そもそもVBScriptでは明示的にbyte配列を記述することはできないため、工夫が必要になります。


■Microsoft.XMLDOMを使ってbyte配列を作る


方法はいくつかあると思いますが、一番手っ取り早いのはMicrosoft.XMLDOMを使う方法です。

Microsoft.XMLDOMのHex形式の文字列("1A0FB3"のような形式)をバイト配列に変換する機能を使って、例えば以下のように関数化します。

Function HexToBArray(Hex)
     With CreateObject("Microsoft.XMLDOM").createElement("aaaa")
         .DataType = "bin.hex"
         .Text = Hex
        
HexToBArray= .NodeTypedValue
     End With
End Function


あとは、この関数の戻り値をVBScriptのバリアント型の変数に格納しておけば、別の関数の引数として使うことが出来ます。

Ads by 忍者AdMax