2016-04-16 5 views
0

Я получил многострочного текстового поля и ListView текстовое поле содержит:Throw ID и его информация в ListView

[1000]
имя = John
number0 = 78569987

[1001]
имя = Sara
number0 = 89768980
number1 = 77897545


enter image description here


TextBox2.Text = TextBox2.Text.Replace("[", "this what i want") 

Dim lines As New List(Of String) 
lines = TextBox2.Lines.ToList 
Dim FilterText = "this what i want" 
For i As Integer = lines.Count - 1 To 0 Step -1 
    If Not Regex.IsMatch(lines(i), FilterText) Then 
     lines.RemoveAt(i) 
    End If 
Next 
TextBox2.Lines = lines.ToArray 
TextBox2.Text = TextBox2.Text.Replace("this what i want", "") 
TextBox2.Text = TextBox2.Text.Replace("]", "") 

ListBox1.Items.AddRange(TextBox2.Lines) 

For Each x As String In ListBox1.Items 
    Dim II As New ListViewItem 
    II.Text = x 
    ListView1.Items.Add(II) 
Next 

Я не могу использовать тот же способ вставки номеров и имен, поскольку некоторые идентификаторы содержат number0 число 1, а некоторые содержат только число 0 ,, так как я могу вставить их номера?

Заранее спасибо.

+0

Умение поделиться скриншотами для лучшего объяснения? * Вызывает путаницу ... * – Spidey

+0

вот что я имею в виду http://i.epvpimg.com/VyGge.jpg –

+0

Вы хотите скопировать текст в текстовом поле в listview? почему двухэтапный подход? Кроме того, почему вы заменяете '' '' 'на то, что я хочу', вы не можете использовать, если напрямую? – Spidey

ответ

0

Проверьте приведенный ниже код с комментариями. Возможно, вам придется немного изменить размер данных.
Проверьте this question and it's linked questions для подобных вещей.

Редактировать: Обратите внимание, что это только копии из строк в richtextbox для разных столбцов в списке, поэтому он будет работать для приведенных вами примеров. Надеюсь, вы сможете усовершенствовать эту логику для учета конкретных столбцов в соответствии с данными, поступающими в richtextbox.

Dim lines As New List(Of String) 
lines = TextBox2.Lines.ToList 

'Add 1st row to the listview 
ListView1.Items.Add(New ListViewItem()) 

'Use Counter to determine row# 
Dim j As Integer = 0 

'Loop through the items 
For i As Integer = 0 To lines.Count - 1 
    'Check if it's 1st item i.e. ID and add as text (i.e. at Index 0) 
    If lines(i).StartsWith("[") Then 
     ListView1.Items(j).Text = lines(i).Substring(1, lines(i).Length - 2) 

    'Check if contains other columns with attributes 
    ElseIf lines(i).Contains("=") Then 
     ListView1.Items(j).SubItems.Add(lines(i).Substring(lines(i).IndexOf("=") + 1)) 

    'Check if it's an empty record, and add new row to listview 
    Else 
     j = j + 1 
     ListView1.Items.Add(New ListViewItem()) 
    End If 
Next 
+0

Существует небольшая ошибка, но да, это то, что им нужно .. спасибо –

+0

Правильно, он может сломаться, если данные не будут поступать последовательно, то есть number0 отсутствует, но number1 предоставляется, но вы может изменить if else и сделать его режимными гранулярными проверками в соответствии с фактическими данными. Дайте мне знать, если вы застряли. – Spidey

 Смежные вопросы

  • Нет связанных вопросов^_^