今までずっと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で取れてくるんだろうか?
とってもなぞです・・・。
ついでにもひとつ
タブコントロールのタブページって非表示に
できないんですね・・・><
これもはまったよ~
こんな調子ですが大丈夫なんでしょうか(^^ヾ