SSブログ

全角、半角が混じった文字列の取出し方(VB6) [PC]

前にやったことがあるのにどこでやってたか忘れてやり方を探すのに
苦労したので覚え書きで書いてきます。

VBはUnicodeで文字列を扱っているのでMID関数でデータを取ると
全角、半角関係なく1文字としてデータが取れるので「あいう123えお」の
数字を取るには、4文字目から3つで取得できます。

Unicodeでない場合は、全角は2バイト、半角は1バイトで処理することに
なるのでめんどくさいことになります。
VBでファイルから読み込むと自動的にUnicodeになるからそれをシステムコードに
戻して、文字列を取ってまたUnicodeに戻すことになるんですね。

数字を取得するサンプルプログラムです。
Dim strTmp As String
Dim strData As String

strTmp = "あいう123えお"

strTmp = StrConv(strTmp, vbFromUnicode) ' システムコードに変換
strData = MidB(strTmp, 7, 3) ' 1バイトずつで数えて文字列取得
Debug.Print StrConv(strData, vbUnicode) ' Unicodeに戻して表示

ネットワーク上でソケット通信をするときに送られくるデータが全角は2バイト、
半角は1バイトで処理する必要がある場合に使ってます。
Windows同士ならUnicodeで統一できそうだけど、なかなかそうはいかいなから
めんどうなところです。


nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

7月科目修得試験 申し込みJ検 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。