2015-01-17 8 views
-1

Вот мой код.Вычесть из текстового поля (шестнадцатеричный)

Он считывает байты из * .bin файла и показать его в TextBox1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim OFD As New OpenFileDialog 
    Dim fullFile() As Byte 

    If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then 
     fullFile = File.ReadAllBytes(OFD.FileName) 
     TextBox1.AppendText(fullFile(&H2E).ToString("X2") & " ") 
     TextBox1.AppendText(fullFile(&H2F).ToString("X2")) 
    End If 

End Sub 

Теперь я хочу, чтобы добавить вычитание в TextBox2.

пример:

H2E - BC 
H2F - CD 
BCCD - 2222 = 9AABB 
Textbox2. = result 

Я пытался с этим, но это дает результат в десятичной

TextBox2.Text = Val(TextBox1.Text) - Val("2222") 
+0

Это не JS, это VB .NET или Visual Basic! Вернитесь соответственно. –

+2

А также вы пытаетесь выполнить операцию вычитания ** на двух типах строк **, возможно, вы хотели бы выполнить операцию вычитания ** в двух шестнадцатеричных числах. ** – ilgaar

ответ

1

Попробуйте что-то вроде это:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim hex As String = String.Join("", TextBox1.Text.Trim.Split(" ")) ' Assuming "BC CD" is in the box 
    If hex.Length = 4 Then 
     Try 
      Dim intA As Integer = Convert.ToInt32(hex, 16) 
      Dim intB As Integer = Convert.ToInt32("2222", 16) 
      Dim intC As Integer = intA - intB 
      TextBox2.Text = intC.ToString("X2") 
     Catch ex As Exception 
      MessageBox.Show("Invalid Hexadecimal Value") 
     End Try 
    Else 
     MessageBox.Show("Invalid Hexadecimal Value") 
    End If 
End Sub 
Смежные вопросы