VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/12/21(Tue) 08:45
投稿者LESIA
Eメール
URL
タイトルRe^3: 数字列の長さについて

> 返事ありがとうございます。
>
> LenB(StrConv("20040501", vbFromUnicode))の
> "20040501"は、実はText1(テキストボックス)に入力したもので、
> 実際は、LenB(StrConv(Text1, vbFromUnicode))になるのですが、
> この場合、
> Len(StrConv(Text1, vbFromUnicode)) = 4
> LenB(StrConv(Text1, vbFromUnicode)) = 8
> になります。
> テキストボックスに入力すると、何か違うのでしょうか。
> すいませんが、ご返答よろしくお願いします。

これは、テキストボックスでも変数に代入しても同じです。

最初の回答にも書きましたが、StrConv(Text1, vbFromUnicode) は
VBの内部で扱っているUNICODEからSHIFT-JISへ変換するものです。
したがって、そのバイト数を求めるLenB(StrConv(Text1, vbFromUnicode))には
意味がありますが、文字数を求めるLen(StrConv(Text1, vbFromUnicode))は
StrConv(Text1, vbFromUnicode)で変換したSHIFT-JISのデータを無理矢理
文字としてその長さを求めるもので、はっきりいって意味がないものです。
MsgBox StrConv(Text1, vbFromUnicode)としてみると、意味不明の文字が
表示されるのがわかると思います。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -