プロが教えるわが家の防犯対策術!

今日の質問/マイページに反映されないので、再度の質問です。
windows2000-sp4/vb6-sp5環境です。ユニコードのデータをvbで直接入出力し、vb内でstring型で扱いたいとおもっています。今のところ、vbの入出力では、自動的にsjis/unicode変換がされるので、binaryで受け取り、string型にするのかなと思っています。byte型で受け取り、APIの"MoveMemory"("RtlMoveMemory")でstring型にcopyするのかなとは思っているのですが、うまくいきません。経験不足そのものです。vbでのbyte型とstring型双方向のbinaryな変換の方法をお教えください。

A 回答 (1件)

dim s as string


dim b() as byte

'文字列 -> byte配列
b = s

'byte配列 -> 文字列
s = b

この回答への補足

todo36さん さっそくの回答どうもありがとうございます。

"="で型変換できるとは驚きです。

下記のテストをしてみました。

Private Sub Command1_Click()

Dim byt1() As Byte
Dim str1 As String

Open "c:\data\in.csv" For Binary Access Read As #1
Open "c:\data\ou.csv" For Binary Access Write As #2

ReDim byt1(1)
Get #1, , byt1
ReDim byt1(21)
Get #1, , byt1
str1 = byt1
MsgBox ("< " & str1 & " >")
ReDim byt1(1)
byt1(0) = &HFF
byt1(1) = &HFE
Put #2, , byt1
ReDim byt1(21)
byt1 = str1
Put #2, , byt1

Close #1
Close #2

End Sub


sjis対応以外の文字もそのまま出力されることは確認しました
BOMの2バイトを含め24バイトのファイルを入出力しました
ただ、何が稚拙なのか、24バイトのあとに142バイトのゴミがついて出力されました。どこに問題があるのでしょうか。何か判りますでしょうか。 

補足日時:2003/10/23 15:54
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2003/10/23 22:48

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

このQ&Aを見た人はこんなQ&Aも見ています