カテゴリー : .NETプログラミング

VB.NET 半角英数字チェック

半角英数字のチェックについて、
.NETFrameworkで用意されているメソッドを探していたが、
「Char.IsLetterOrDigit」は全角半角区別がないため使用できなかった。

Char.IsLetterOrDigit メソッド

正規表現を使って文字列がある形式と一致するか調べるを参考に正規表現にて半角英数字チェックをする。

’正規表現パターンを指定(英字a-z,A-Z,数値0-9)
Dim r As New System.Text.RegularExpressions.Regex(“^[a-zA-Z0-9]+$”)

Dim s As String = “abcd#”

’半角英数字に一致しているかチェック
If r.IsMatch(s) = False Then
  MsgBox(“半角英数字以外の文字が含まれています。”)
End If

VB.NET ログ出力

システム構築をする上でログ出力は重要であるが、出力方法としてファイルに出力、DBに出力、イベント・ログに出力など様々な方法がある。

それらの方法で出力できるログ出力ライブラリがあるので紹介。

「log4net」というオープンソースのロギング・サービス

ダウンロード先
Download Apache log4net

ファイル、DB、イベント・ログ、メール送信など出力先が豊富なことに加え、マルチスレッドの環境でも正しくログを生成することができる。

参考サイト:オープンソースのロギング・サービス「log4net」を使う

VB.NET フォームロード時にフォーカスを設定

フォームロード時に、コントロールへフォーカスを設定する場合、

Me.TextBox1.Focus()

ではうまくいかない。

Me.ActiveControl = Me.TextBox1

だとうまくいくので「ActiveControl」を使用。

VB.NET ログインユーザ名 マシン名取得

ログ出力等の処理でよく使うのでメモ

「System.Environment」クラスを使用して取得
ログインユーザ名取得
System.Environment.UserName
マシン名取得
System.Environment.MachineName

「My」機能を使用して取得
ログインユーザ名取得
My.User.Name
マシン名取得
My.Computer.Name

「System.Environment」も「My」も同じと思いきやちょっと違った。

「My.User.Name」にはドメイン名が付加され、
「System.Environment.UserName」には付加されない。

例:「abc\admin」でログインしている場合
  「My.User.Name」の結果は「abc\admin」
  「System.Environment.UserName」の結果は「admin」