2007年10月4日木曜日

VB.NETで数値型文字列の下1桁を取り出す。

今までずっとJAVA関連の仕事かつサーバサイド
ばっかりでしたが今月からVB.NETでリッチクライアントの
案件をやるようになった。

ちなみにVisualBasic2003です。

クラアントをやるのは実に4年ぶりくらいで
当時はまだVB6でした。んなもんで
VB6からVB.NETへ完全に乗り遅れた人間です^^;

そんなこんなではまりまくったのでメモっと!

単純に数値の文字列の下一桁を取り出すという処理
なんですが、これがとれなくて3時間・・・

Dim str As New String(vbNullChar,20)

と定義された変数にDBから取得したレコード
を設定する。DBの戻りは各項目がタブで区切られて
いて、今回はひとつしか項目は取得していない。
なので、下記のようなデータが取得される

ret="11\t"(\tはタブ文字)

これを上記の変数にいれて処理開始・・・

tmp=str.Replace(vbTab,"")
val=Microsoft.visualbasic.Right(tmp,1)

これでやると、valには""が返され思った処理ができない。
しかし、デバッグや出力して中身をみるとちゃんと"11"が
入ってる・・・。こっからどつぼに。
よくわからんまま下記のように書き換えてなんとかできた。

Dim sCol() As String
sCol()=str.Split(vbTab)
val=Microsoft.visualBasic.Right(sCol(0),1)

これって、String型を宣言するときにバイト数を
指定すると、全体的にChar型のように扱われて
いるから、Right関数で右から一文字取ろうとすると
20バイト目のvbNullCharで取れてくるんだろうか?
とってもなぞです・・・。

ついでにもひとつ
タブコントロールのタブページって非表示に
できないんですね・・・><

これもはまったよ~
こんな調子ですが大丈夫なんでしょうか(^^ヾ

0 件のコメント: