- - PR -
Hex関数とASC関数について(vb.netとvb6.0の違い)
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-18 21:43
はじめて投稿します。
初心者な為、わかりづらい表現かもしれませんがお許しくださいませ。 文字列データ(Data)に外字文字が存在する場合、■に置き換える プログラムを作成しております。 **************************************************************************** Private Function CheckMoji(ByVal Data As String) As String Dim strDt As String Dim strMix As String strMix = "" For i = 1 To Data.Length '文字列データの文字数を取得 strDt = Mid(Data, i, 1) If Hex(Asc(strDt)) >= "F040" And Hex(Asc(strDt)) <= "FCFC" Then strMix = strMix & "■" Else strMix = strMix & strDt End If Next : : ※文字列データ(Data)に外字文字が存在します。 ***************************************************************************** 文字列データ(2バイト)をHex(Asc(strDt))でMsgbox表示すると頭4桁"FFFF"となり ■に置き換えることができません。 ※ちなみに同じソースでVB6で実行すると置き換わります。 VB.NETでは、2バイト文字をHex(Asc(文字列データ))すると必ず頭4桁に"FFFF"が付くのでしょうか? If Hex(Asc(strDt)) >= "FFFFF040" And Hex(Asc(strDt)) <= "FFFFFCFC" Then strMix = strMix & "■" Else strMix = strMix & strDt End If のようなやり方でよいのでしょうか? また、別の方法がございましたらご教授お願いいたします。 | ||||||||||||
|
投稿日時: 2006-02-18 22:02
Hex を使わなければならない理由がわからないのですが...
数値にしたものを、再度文字列にする必要があるのでしょうか? 文字コードを比較する以上は、数値で検証すべきだと思いますが...
適当ですが、こういう感じで良いのではないでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-18 22:08
あ、Hex メソッドを使わなかったら使わなかったで、負数になること自体は免れませんねw
AscW メソッドを使ってください。
正しくは Asc メソッドの時点で、ですね。
Hex メソッドは要らないというところは先の説明と同じです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1