Как сравнить значение текстового поля с текстовым файлом - PullRequest
0 голосов
/ 13 марта 2020
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim linenumber0 As Integer
    linenumber0 = 0
    Dim mass As Double
    mass = (File.ReadAllLines("225.txt").ElementAt(linenumber0).ToString)
    If (Math.Abs((cDbl(TextBox1.Text) - mass < 0.5) Then
        TextBox1.BackColor = Color.Green
    End If

Я получаю сообщение об ошибке при переводе строки в двойную недопустимо. Возможно, это простое решение, но я не вижу его сейчас

Ответы [ 2 ]

2 голосов
/ 13 марта 2020

Ваша ошибка возникает из-за того, что данные, прочитанные из файла, имеют значение String, однако вы пытаетесь присвоить его переменной, объявленной как Double.
. Вы можете использовать TryParse для преобразования String до Double, избегайте ошибок и предоставляйте соответствующую обратную связь.

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim lineNumber0 As Integer
    Dim mass As Double
    Dim input As Double

    If Double.TryParse(File.ReadAllLines("225.txt").ElementAt(linenumber0), mass) Then
        If Double.TryParse(TextBox1.Text, input) AndAlso Math.Abs(input - mass) < 0.5 Then
            TextBox1.BackColor = Color.Green
        End If
    Else
        'Bad file input
    End If
    '...
End Sub
0 голосов
/ 13 марта 2020

Я думаю, что когда вы устанавливаете значение для массы, перехватывается строка, поэтому проанализируйте ее с помощью простого CDbl, например,

mass = cDbl(File.ReadAllLines("225.txt").ElementAt(linenumber0).ToString)

Я полагаю, что с этим исправлением это будет работать. На всякий случай, окружите его TRY CATCH в случае, если то, что он читает, недействительно

...