2013-10-08 30 views
0

我目前有我的驗證檢查我的二進制加法器,但只檢查其1或0雖然錯誤。我希望它檢查文本框是否包含從2到9以及從a到z的所有內容。 我的代碼是目前:二進制加法器驗證檢查

Dim errorpass As Integer = 2 
    Dim decnum As Integer = 2 
    Dim errormsg As String = "ERROR:" + vbNewLine 
    'Start of Error Checking 
    'Checking if either textbox contains anything 
    If TextBox1.Text = "" Or TextBox2.Text = "" Then 
     errormsg += ("Please enter some form of input." + vbNewLine) 
     errorpass = 1 
     'Checking if either textbox are numbers 
    ElseIf Not (IsNumeric(TextBox1.Text) Or IsNumeric(TextBox2.Text)) Then 
     errormsg += ("Please enter a number." + vbNewLine) 
     errorpass = 1 
     'Checking if either textbox contains 1's or 0's 
     For i = 2 To 9 
      If TextBox1.Text.Contains(decnum) Or TextBox2.Text.Contains(decnum) Then 
       errormsg += ("Please enter binary." + vbNewLine) 
       errorpass = 1 
      ElseIf Not TextBox1.Text.Contains("1" Or "0") Or TextBox2.Text.Contains("1" Or "0") Then 
       errorpass = 1 
       If decnum = 9 Then 
        decnum = 2 
       Else 
        decnum += 1 
       End If 
      Else 
       errorpass = 2 
      End If 
     Next 

    End If 
    'Processing the request 
    If errorpass = 1 Then 
     MsgBox(errormsg, MsgBoxStyle.Exclamation, Title:="ERROR PROCESSING YOUR REQUEST") 
    ElseIf errorpass = 2 Then 
     'Adder 
     TextBox3.Text = Convert.ToString(Convert.ToInt32(TextBox1.Text, 2) + Convert.ToInt32(TextBox2.Text, 2), 2) 
    End If 
    errorpass = 2 

謝謝:)

回答

0

下面是模式的基礎知識,試圖

Dim num1 As Integer 
    Dim num2 As Integer 
    If Integer.TryParse(TextBox1.Text, num1) AndAlso Integer.TryParse(TextBox2.Text, num2) Then 
     If Not ((num1 = 0 OrElse num1 = 1) AndAlso (num2 = 0 OrElse num2 = 1)) Then 
      'not 0 or 1 
      Stop 
     Else 
      '0 or 1 
      Stop 
     End If 
    Else 
     'error input - not a number 
     Stop 
    End If 
0

我看到一對夫婦的事情與你的代碼...第一,你在ElseIf裏面有你的For循環來檢查這些字段是否是數字。其次,在你的For循環中,你正在評估decnum而不是你的櫃檯,我。試試這個:

Dim errorpass As Integer = 2 
Dim decnum As Integer = 2 
Dim errormsg As String = "ERROR:" + vbNewLine 
'Start of Error Checking 
'Checking if either textbox contains anything 
If TextBox1.Text = "" Or TextBox2.Text = "" Then 
    errormsg += ("Please enter some form of input." + vbNewLine) 
    errorpass = 1 
    'Checking if either textbox are numbers 
ElseIf Not (IsNumeric(TextBox1.Text) Or IsNumeric(TextBox2.Text)) Then 
    errormsg += ("Please enter a number." + vbNewLine) 
    errorpass = 1 
Else 
    'Checking if either textbox contains 1's or 0's 
    For i = 2 To 9 
     If TextBox1.Text.Contains(i) Or TextBox2.Text.Contains(i) Then 
      errormsg += ("Please enter binary." + vbNewLine) 
      errorpass = 1 
     End If 
    Next 

End If 
'Processing the request 
If errorpass = 1 Then 
    MsgBox(errormsg, MsgBoxStyle.Exclamation, Title:="ERROR PROCESSING YOUR REQUEST") 
ElseIf errorpass = 2 Then 
    'Adder 
    TextBox3.Text = Convert.ToString(Convert.ToInt32(TextBox1.Text, 2) + Convert.ToInt32(TextBox2.Text, 2), 2) 
End If 
errorpass = 2