tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: テキストデータの誤字判定
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。