電子書籍の厳選無料作品が豊富!

MidB・MidB$関数でデータを取り出すと取り出したデータが
「?????????」
という具合になってしまうのですがなぜでしょう。
ちなみにバイナリーモードでオープンしたファイルで、データは漢字やら全角スペースなどが
はいっています。

A 回答 (4件)

VBの文字列の格納方法はUnicodeなので正しく取り出せないのでは。


固定バイト長のデータを読み込んでからUnicodeに変換する必要があると思いますが。
StrConv関数を使用してvbUnicodeを指定しUnicodeに変換してみてください。
    • good
    • 0
この回答へのお礼

返事遅くなってすみません。参考にさせていただきます。ありがとうございます。

お礼日時:2003/08/21 00:02


StrConv(MidB(StrConv(TargetString, vbFromUnicode), N, N), vbUnicode)
    • good
    • 2
この回答へのお礼

 アドバイスありがとうございます。

お礼日時:2003/08/21 12:21

>ファイルから取り出したデータはなぜ[????]表示なのでしょう?



バイナリモードでオープンしてるからです。

テキストモードでオープンし、読み出した文字列をStrConvでSJISに変換してからMidBで切り出しましょう。で、そのあとUnicodeに戻せばOK。
    • good
    • 0
この回答へのお礼

返事遅くなってすみません。ありがとうございます

お礼日時:2003/08/21 12:21

MidBのBは、バイトという意味です。



全角は 2バイトで、これを 1バイトずつに すると ?となります。

文字コードとして 扱わないと処理できないかな?
それとも Bをつけないで MID とかで 使う?

この回答への補足

えっと、さっそくの回答ありがとうございます。
半角カタカナも混じっているデータなのでバイト単位で30
バイト取り出したいのですが、変数に格納してある漢字データなどはちゃんと表示されるのにファイルから取り出したデータはなぜ[????]表示なのでしょう?

補足日時:2003/08/19 10:49
    • good
    • 0
この回答へのお礼

ありがとうございます。(^^)

お礼日時:2003/08/20 18:35

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