VB Проверить только точное число в текстовом поле

Взгляните на эту картинку. - http://www.imagebam.com/image/f544011007926944

Я хочу проверить в Textbox1, в textbox2 введите номер, и если он есть, я появлюсь в другом текстовом поле. проблема возникает, когда в textbox1 есть числа, такие как 10,11, если я введу textbox2 номер 1, тогда он будет принят как таковой, он будет выглядеть так, как если бы есть номер 1. Я буду использовать только для чисел от 1 до 80.

где я не прав?

  ' Split string based on space
        Dim textsrtring As String = TextBox1.Text
        Dim words As String() = textsrtring.Split(New Char() {" "c})
        Dim found As Boolean = False
        ' Use For Each loop over words
        Dim word As String
        For Each word In words
            If TextBox2.Lines(0).Contains(word) Then
                found = True
                If CheckVar1.Text.Contains(word) Then
                Else
                    CheckVar1.Text = CheckVar1.Text + " " + TextBox1.Text()
                End If
            End If

Вы можете улучшить свой вопрос? Трудно получить именно то, что вам нужно ... но если я не ошибаюсь, вы относитесь к числам как к буквам, и поэтому, если вы напишете «1», вы получите совпадения типа «11», потому что это буква а не число.

Koken 22.10.2018 18:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
77
1

Ответы 1

Думаю, я знаю, чего вы хотите. Ваша проблема заключается в том, что функция сравнения в строке сравнивает строковые литералы, а не числа «11» содержат «1», а «1» для сравнения вернет истину, если в нем содержится «1». Вам нужно преобразовать строки в числа, а затем сравнить числа друг с другом.

Private Sub CompareNumbers()

    'First Textbox that is to be used for compare
    Dim textBox1Numbers As List(Of Integer) = GetNumbersFromTextLine(TextBox1.Text)

    'Second Textbox that is to be used for compare
    Dim textBox2Numbers As List(Of Integer) = GetNumbersFromTextLine(TextBox2.Text)

    'Union List of Common Numbers (this uses a lambda expression, it can be done using two For Each loops instead.)
    Dim commonNumbers As List(Of Integer) = textBox1Numbers.Where(Function(num) textBox2Numbers.Contains(num)).ToList()

    'This is purely for testing to see if it worked you can.
    Dim sb As StringBuilder = New StringBuilder()
    For Each foundNum As Integer In commonNumbers
        sb.Append(foundNum.ToString()).Append(" ")
    Next

    MessageBox.Show(sb.ToString())

End Sub

Private Function GetNumbersFromTextLine(sTextLine As String) As List(Of Integer)

    Dim numberList As List(Of Integer) = New List(Of Integer)()

    Dim sSplitNumbers As String() = sTextLine.Split(" ")

    For Each sNumber As String In sSplitNumbers

        If IsNumeric(sNumber) Then
            Dim iNum As Integer = CInt(sNumber)
            If Not numberList.Contains(iNum) Then
                numberList.Add(iNum)
            End If
        Else
            MessageBox.Show("Non Numeric Found in String :" + sTextLine)
        End If

    Next

    Return numberList

End Function

Сработало ... Большое спасибо за код, с этим кодом программа лотереи будет почти готова: D Программа будет знать, как распознавать выигрышные числа из текстового файла и множества комбинаций.

user7775547 22.10.2018 19:49

Другие вопросы по теме