Vb.net 在文本框中搜索字符串后查找字符串
我一直在开发一个应用程序,它使用套接字连接到交换机并发出命令。之后,从开关读回的数据被放入一个文本文件中,并且包含特定字符串的行(例如本例中的“GE1”)被放入一个文本框中,如下所示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/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格式可能已进行了一些更改,因此可能需要调整确切的代码。否则: