Сплит мультилинии в VB - PullRequest
0 голосов
/ 07 мая 2019

У меня проблема с разделением на несколько строк, поскольку она разбивает только первую строку.Я хочу разбить все строки.

Dim a As String
Dim b As String

Dim split = TextBox1.Text.Split(":")
If (split.Count = 2) Then
  a = split(0).ToString
  b = split(1).ToString
End If

TextBox2.Text = a
TextBox3.Text = b

1 Ответ

1 голос
/ 07 мая 2019

Вы должны перебрать все строки в текстовом поле

    For Each Ln As String In TextBox1.Lines
        If Not String.IsNullOrEmpty(Ln) Then
            Dim Lines() As String = Ln.Split(":"c)
            If Lines.Length = 2 Then
                TextBox2.Text &= Lines(0) & Environment.NewLine
                TextBox3.Text &= Lines(1) & Environment.NewLine
            End If
        End If
    Next

Редактировать - Обновлено, чтобы включить проверку условий для предотвращения исключений индекса.

Edi2 - Следует отметить, что рисование ваших строк в этих элементах управления текстовым полем может занять некоторое время, я не могу судить о вашем требовании, но вы можете оптимизировать процедуру с помощью объектов на основе коллекции или строителя строк. IE:

    Dim StrBldrA As New Text.StringBuilder
    Dim StrBldrb As New Text.StringBuilder
    For Each Ln As String In TextBox1.Lines
        If Not String.IsNullOrEmpty(Ln) Then
            Dim Lines() As String = Ln.Split(":"c)
            If Lines.Length = 2 Then
                StrBldrA.Append(Lines(0) & Environment.NewLine)
                StrBldrb.Append(Lines(1) & Environment.NewLine)
            End If
        End If
    Next
    TextBox2.Text = StrBldrA.ToString
    TextBox3.Text = StrBldrb.ToString
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...