- ベストアンサー
MidB関数を使いたい!!
MidB・MidB$関数でデータを取り出すと取り出したデータが 「?????????」 という具合になってしまうのですがなぜでしょう。 ちなみにバイナリーモードでオープンしたファイルで、データは漢字やら全角スペースなどが はいっています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBの文字列の格納方法はUnicodeなので正しく取り出せないのでは。 固定バイト長のデータを読み込んでからUnicodeに変換する必要があると思いますが。 StrConv関数を使用してvbUnicodeを指定しUnicodeに変換してみてください。
その他の回答 (3)
- you111111
- ベストアンサー率45% (20/44)
回答No.4
↓ StrConv(MidB(StrConv(TargetString, vbFromUnicode), N, N), vbUnicode)
質問者
お礼
アドバイスありがとうございます。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.3
>ファイルから取り出したデータはなぜ[????]表示なのでしょう? バイナリモードでオープンしてるからです。 テキストモードでオープンし、読み出した文字列をStrConvでSJISに変換してからMidBで切り出しましょう。で、そのあとUnicodeに戻せばOK。
質問者
お礼
返事遅くなってすみません。ありがとうございます
- taknt
- ベストアンサー率19% (1556/7783)
回答No.1
MidBのBは、バイトという意味です。 全角は 2バイトで、これを 1バイトずつに すると ?となります。 文字コードとして 扱わないと処理できないかな? それとも Bをつけないで MID とかで 使う?
質問者
お礼
ありがとうございます。(^^)
質問者
補足
えっと、さっそくの回答ありがとうございます。 半角カタカナも混じっているデータなのでバイト単位で30 バイト取り出したいのですが、変数に格納してある漢字データなどはちゃんと表示されるのにファイルから取り出したデータはなぜ[????]表示なのでしょう?
お礼
返事遅くなってすみません。参考にさせていただきます。ありがとうございます。