Member 11856456 Ответов: 1

Пропустите значение richtextbox, если оно не существует


Первоначально Ричард помог мне с первой частью моей проблемы, которая заключалась в разборе данных richtextbox.

вот код:

Dim rows() As String = Regex.Split(RichTextBox1.Text, "^\r?$", RegexOptions.Multiline)
       Dim pattern As New Regex("^\s*(?<label>[^:]+)\s*:\s*(?<value>.+)\s*\r?$", RegexOptions.Multiline)

       For Each row As String In rows
           Dim lastName As String = Nothing, firstName As String = Nothing, race As String = Nothing, sex As String = Nothing
           Dim matches As MatchCollection = pattern.Matches(row)
           For Each match As Match In matches
               Dim label As String = match.Groups("label").Value
               If String.Equals(label, "last Name", StringComparison.OrdinalIgnoreCase) Then
                   lastName = match.Groups("value").Value

               ElseIf String.Equals(label, "First Name", StringComparison.OrdinalIgnoreCase) Then
                   firstName = match.Groups("value").Value


               ElseIf String.Equals(label, "Race", StringComparison.OrdinalIgnoreCase) Then
                   race = match.Groups("value").Value

               ElseIf String.Equals(label, "Sex", StringComparison.OrdinalIgnoreCase) Then

               End If

           Next


Я пытался работать над 2-й частью моей проблемы. Теперь, чтобы заставить процесс пропустить значение, если его нет.

Итак, допустим, у меня есть -

Имя: Джефф
фамилия: Джонс
Раса: B

Имя: Стив
фамилия: need

Имя: Лэнс
Пол: М
Гонка: W

вы можете видеть, что в этих примерах есть другие поля, которых нет у других. Я хочу пропустить информацию, которой нет, возможно, даже поставить пустую строку "" просто для того, чтобы продвинуть процесс вперед.

Что я уже пробовал:

Я попробовал значение =
Match.Empty.Value
Я пытался использовать команду skip, но я просто продолжаю получать нулевую ошибку ссылки.

Member 11856456

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

Richard Deeming

Если одна из меток не существует, переменная будет Nothing. Если вы хотите использовать вместо этого пустую строку, просто замените четыре = Nothing операторы инициализации с = String.Empty.

Member 11856456

Я попробовал использовать оператор else.

Если Строка.Equals (label," last Name", StringComparison.OrdinalIgnoreCase), То
фамилия = совпадение.Значение группы").Ценность
ещё
фамилия = строка. пусто

ошибка по-прежнему говорит, что ей нужен параметр @lastname.

Member 11856456

Я тоже пробовал этот метод:

ElseIf String.IsNullOrEmpty ("фамилия") Затем
фамилия = ничего

все еще получаю ошибку параметра

1 Ответов

Рейтинг:
1

Member 11856456

Я понял, что мне пришлось использовать оператор if в параметре команды sql add.