タイトル | : Re: テキストデータの誤字判定 |
記事No | : 3952 |
投稿日 | : 2006/07/10(Mon) 13:32 |
投稿者 | : なおこ(・∀・) |
お世話になります。
> textbox1にtextbox2と違う文字が打たれてたら、 > それを誤字と判定し、カウントしたいんですが、 いつ、判定処理が走るのかが書かれていないのですが、 とりあえず、TextBox2 の Leave 時 で判定すると仮定するとこんな感じでしょうか。 Public Class Form1 Private m_errorCount As Integer
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.TextBox1.ReadOnly = True Me.TextBox1.Text = DateTime.Now.ToString("yyMMddHHmmss") ' 最初の問題 Me.TextBox2.Text = "" Me.Label1.Text = "" Me.Label2.Text = "" Me.m_errorCount = 0 End Sub
Private Sub TextBox2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Leave Dim txt As String = Me.TextBox2.Text
If Me.TextBox1.Text <> txt Then ' エラーのカウントアップ Me.m_errorCount += 1 Me.Label2.Text = "エラー数:" + Me.m_errorCount.ToString() + "回"
If txt = "" Then Me.Label1.Text += Environment.NewLine + _ "入力されていません" Else Dim masterChars As Char() = Me.TextBox1.Text.ToCharArray() Dim chars As Char() = txt.ToCharArray() If masterChars.Length <> chars.Length Then Me.Label1.Text += Environment.NewLine + _ "文字の長さが一致していません" Else For i As Integer = 0 To chars.Length - 1 If masterChars(i) <> chars(i) Then Me.Label1.Text += Environment.NewLine + _ "位置:" + (i + 1).ToString() + "の誤り" Exit For End If Next End If End If End If
' 次の問題 Me.TextBox1.Text = DateTime.Now.ToString("yyMMddHHmmss") Me.TextBox2.Text = "" End Sub End Class
> 時間内に というのは、実装していません。 Timer コントロールを使ってやればできると思います。 [タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編) − @IT] http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html
|