• ベストアンサー

MidB関数を使いたい!!

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

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

VBの文字列の格納方法はUnicodeなので正しく取り出せないのでは。 固定バイト長のデータを読み込んでからUnicodeに変換する必要があると思いますが。 StrConv関数を使用してvbUnicodeを指定しUnicodeに変換してみてください。

guruguru2
質問者

お礼

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

その他の回答 (3)

  • you111111
  • ベストアンサー率45% (20/44)
回答No.4

↓ StrConv(MidB(StrConv(TargetString, vbFromUnicode), N, N), vbUnicode)

guruguru2
質問者

お礼

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

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>ファイルから取り出したデータはなぜ[????]表示なのでしょう? バイナリモードでオープンしてるからです。 テキストモードでオープンし、読み出した文字列をStrConvでSJISに変換してからMidBで切り出しましょう。で、そのあとUnicodeに戻せばOK。

guruguru2
質問者

お礼

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

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

MidBのBは、バイトという意味です。 全角は 2バイトで、これを 1バイトずつに すると ?となります。 文字コードとして 扱わないと処理できないかな? それとも Bをつけないで MID とかで 使う?

guruguru2
質問者

お礼

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

guruguru2
質問者

補足

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

関連するQ&A

専門家に質問してみよう