Vb.net 在文本框中搜索字符串后查找字符串

Vb.net 在文本框中搜索字符串后查找字符串,vb.net,sockets,textbox,Vb.net,Sockets,Textbox,我一直在开发一个应用程序,它使用套接字连接到交换机并发出命令。之后,从开关读回的数据被放入一个文本文件中,并且包含特定字符串的行(例如本例中的“GE1”)被放入一个文本框中,如下所示 GE1/0/1 UP 1G(a) F(a) A 101 To Station 1 GE1/0/2 DOWN auto A A 1 To Station 2 GE1/0/3 DOWN auto

我一直在开发一个应用程序,它使用套接字连接到交换机并发出命令。之后,从开关读回的数据被放入一个文本文件中,并且包含特定字符串的行(例如本例中的“GE1”)被放入一个文本框中,如下所示

GE1/0/1              UP   1G(a)   F(a)   A    101  To Station 1
GE1/0/2              DOWN auto    A      A    1    To Station 2
GE1/0/3              DOWN auto    A      A    1    To Station 3
GE1/0/4              DOWN auto    A      A    1    To Station 4
GE1/0/5              DOWN auto    A      A    1    To Station 5
GE1/0/6              DOWN auto    A      A    1    To Station 6
GE1/0/7              DOWN auto    A      A    1    To Station 7
GE1/0/8              DOWN auto    A      A    1    To Station 8
  ---- More ----[16D                [16DGE1/0/9              DOWN auto    A      A    1    To Station 9
  ---- More ----[16D                [16DGE1/0/10             DOWN auto    A      A    1    To Station 10
  ---- More ----[16D                [16DGE1/0/11             DOWN auto    A      A    1    To Station 11
  ---- More ----[16D                [16DGE1/0/12             DOWN auto    A      A    1    To Station 12
  ---- More ----[16D                [16DGE1/0/13             DOWN auto    A      A    1    To Station 13
  ---- More ----[16D                [16DGE1/0/14             DOWN auto    A      A    1    To Station 14
  ---- More ----[16D                [16DGE1/0/15             DOWN auto    A      A    1    To Station 15
  ---- More ----[16D                [16DGE1/0/16             DOWN auto    A      A    1    To Station 16
  ---- More ----[16D                [16DGE1/0/17             DOWN auto    A      A    1    To Station 17
  ---- More ----[16D                [16DGE1/0/18             DOWN auto    A      A    1    To Station 18
  ---- More ----[16D                [16DGE1/0/19             DOWN auto    A      A    1    To Station 19
  ---- More ----[16D                [16DGE1/0/20             DOWN auto    A      A    1    To Station 20
  ---- More ----[16D                [16DGE1/0/21             DOWN auto    A      A    1    To Station 21
  ---- More ----[16D                [16DGE1/0/22             DOWN auto    A      A    1    To Station 22
  ---- More ----[16D                [16DGE1/0/23             DOWN auto    A      A    1    To Station 23
  ---- More ----[16D                [16DGE1/0/24             DOWN auto    A      A    1    To Station 24
  ---- More ----[16D                [16DGE1/0/25             DOWN auto    A      A    1    To Station 25
  ---- More ----[16D                [16DGE1/0/26             DOWN auto    A      A    1    To Station 26
问题如下:我想在GE1/0/之后取不同的文本?并将每个单独的文本应用于标签,以便在小表单上查看信息

例如:

Label1 = "UP" 
Label2 = "1G(a)
'and so on until it reads to the end of the line before moving to the next line and
'repeating with the next group of labels. 
请注意,无论是否有东西连接到工作站,信息都会显示出来


另一方面,我尝试过使用
Textbox1.text=Textbox1.text.Replace(“----More---[16D[16D],”)
有无
。修剪
但不会删除文本。建议?

在某一点上,您将其称为
文本文件,然后称为
文本框
。这似乎是一个多行文本框,因此您应该使用lines数组。更好的做法是将文件加载到数组中,处理它,然后发布或直接解析文本框

修剪第一部分时,无论第一部分有多长,也不管它是否真的是空格、制表符或中间的其他东西,都要将其切掉

    Dim lines = TextBox1.Lines    ' or from file

    Dim ndx As Integer

    For n As Integer = 0 To lines.Length - 1
        If lines(n).StartsWith("GE1") = False Then
            ndx = lines(n).IndexOf("GE1")
            lines(n) = lines(n).Substring(ndx, lines(n).Length - ndx)
        End If
    Next

    TextBox1.Lines = lines
因为这看起来或多或少是固定长度的字段,所以在清理行数据后,您应该能够使用您最喜欢的文本解析器将其切碎。我建议将其解析为类,以便您可以为任何数据元素取回您想要的任何块。不过,作为解析的示例,这将把它切碎到appa中租赁字段并显示在
列表视图中

Dim ndx As Integer
Dim tmp As String
Dim lvi As ListViewItem

For n As Integer = 0 To lines.Length - 1
    If lines(n).StartsWith("GE1") = False Then
        ndx = lines(n).IndexOf("GE1")
        lines(n) = lines(n).Substring(ndx, lines(n).Length - ndx)
    End If

    tmp = lines(n)
    ' col 1 = 10 chars (approx)
    lvi = New ListViewItem(tmp.Substring(0, 10).Trim)
    tmp = tmp.Substring(10, tmp.Length - 10).Trim()

    ' col 2 = up to 4 chars
    lvi.SubItems.Add(tmp.Substring(0, 4))
    tmp = tmp.Substring(4, tmp.Length - 4).Trim()

    ' col 3 = up to 5 chars "1G(a)"
    lvi.SubItems.Add(tmp.Substring(0, 5))
    tmp = tmp.Substring(5, tmp.Length - 5).Trim()

    ' col 4 = up to 4 chars "F(a)"
    lvi.SubItems.Add(tmp.Substring(0, 4))
    tmp = tmp.Substring(4, tmp.Length - 4).Trim()

    lvi.SubItems.Add(tmp.Substring(0, 1))
    tmp = tmp.Substring(1, tmp.Length - 1).Trim()

    lvi.SubItems.Add(tmp.Substring(0, 3))
    tmp = tmp.Substring(3, tmp.Length - 3).Trim()

    lvi.SubItems.Add(tmp)

    lv1.Items.Add(lvi)
Next
注意:提供的数据示例不全面,HTML格式可能已进行了一些更改,因此可能需要调整确切的代码。否则: