Vb.net 删除文本框中的某些行

Vb.net 删除文本框中的某些行,vb.net,textbox,split,streamreader,multiline,Vb.net,Textbox,Split,Streamreader,Multiline,我有一个代理列表,类似于IP:PORT,我需要做的是删除端口号为8080、80、431和13的所有代理。我试着用一个StreamReader来做这件事,但是没有用,有什么帮助吗?多谢各位 我的代码工作: Using reader As New StreamReader(o.FileName()) While Not reader.EndOfStream Dim line As String = reader.ReadLine()

我有一个代理列表,类似于IP:PORT,我需要做的是删除端口号为8080、80、431和13的所有代理。我试着用一个StreamReader来做这件事,但是没有用,有什么帮助吗?多谢各位

我的代码工作:

    Using reader As New StreamReader(o.FileName())
        While Not reader.EndOfStream
            Dim line As String = reader.ReadLine()
            Dim X As String = line.Contains("8080")
            For Each X In NsTextBox1.Text
                NsTextBox1.Text = NsTextBox1.Text + X
                Exit While
            Next
        End While
    End Using

我最近写了一篇文章,如果代理列表每行包含1个IP,并且末尾没有空格,那么应该可以很好地完成这个任务。
虽然不是最优化的代码,但它工作得很好,下面是它的一些输出,解析了大约6000个代理的列表

你应该这样使用它

IO.File.WriteAllText("C:\ProxyOut.txt", ParseProxyList(IO.File.ReadAllText("C:\ProxyIn.txt"), 8080, 80, 431, 13))
编辑:哦,我刚刚读到它是一个文本框,用法应该没有那么不同

TextBoxOut.Text = ParseProxyList(TextBoxIn.Text, 8080, 80, 431, 13))
以及功能本身:

Private Function ParseProxyList(ByVal list As String, ParamArray ports() As Integer)
    Dim splitList() As String = list.Split(vbCrLf)
    Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
    Dim outputLinesCount As Integer = 0
    For Each line As String In splitList
        Dim bContainsPort As Boolean = False
        For Each port As Integer In ports
            If line.EndsWith(":" & port.ToString) Then
                bContainsPort = True
            End If
        Next
        If bContainsPort = False Then
            sb.AppendLine(line)
            outputLinesCount += 1
        End If
    Next
    MsgBox(splitList.Count.ToString & "->" & outputLinesCount.ToString & " (" & (splitList.Count - outputLinesCount) & " Removed)")
    Return sb.ToString
End Function

我已经尝试使用StreamReader来实现这一点,请分享您的努力!!将reader用作新的StreamReader(o.FileName()),而不是reader.EndOfStream Dim line As String=reader.ReadLine()Dim X As String=line.Contains(“8080”)对于NsTextBox1.Text NsTextBox1.Text=NsTextBox1.Text+X中的每个X,在下一个结束时退出,使用结束时请编辑您的问题并将代码粘贴到那里。这也会帮助其他人理解你的问题@用户2579399。。您必须将此标记为答案。。这对你有帮助,不是吗。。在向下投票标志下方打绿色勾。。