プロが教える店舗&オフィスのセキュリティ対策術

VBScriptでバイナリファイルを書き込みたいのですが、以下のコードで Writeしようとするとコンパイルエラーとなります。
なぜですか?

Option Explicit

Dim stream
Dim i
Dim line

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1

line = Array(61,0,13,0,10,0)
stream.Write line
stream.SaveToFile "bbb.txt", 2

stream.Close
Set stream = Nothing

A 回答 (2件)

なるほど、、、、です。

。。

こちらが教えてもらっちゃいました。


ありがとうございました。
    • good
    • 0

そちらのコードをエクセルVBAにて実行したところ、そちらの問題となっているところが再現いたしました。



writeのパラメータがバイト型でなければならないようです。
http://homepage1.nifty.com/MADIA/vb/vb_bbs/20031 …


VBAなので、byte()で宣言して、各配列に値をセットしたら、通りました。

型宣言できない状態では、ADODB.Streamオブジェクトを利用した実現は無理っぽいすね。

この回答への補足

これでなんとかうまくいきました。

dim sOut
dim sIn
set sOut = CreateObject("ADODB.Stream")
set sIn = CreateObject("ADODB.Stream")

With sOut
.type = 2
.charset = "iso-8859-1"
.open
End With

For i = 0 to &hff
sOut.writeText(ChrW(i)) 'uses ChrW
next
sOut.saveToFile "bin.bin", 2
sOut.close

With sIn
.type = 1
.open
End With

sIn.LoadFromFile("bin.bin")
line = sIn.Read
msg = ""
For i = 1 To LenB(line)
ch = AscB(MidB(line, i ,1))
msg = msg & " " & Hex(ch)
Next
sIn.Close

Wscript.Echo msg

補足日時:2005/08/17 10:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!