2013-09-01 3 views
0

J'ai une liste proxy, comme IP: PORT, et ce que je dois faire est de supprimer tous les proxies avec les numéros de port de 8080, 80, 431 et 13. J'ai essayé de utiliser un StreamReader pour le faire, mais en vain, aucune aide les gars? Je vous remercie.Suppression de certaines lignes dans la zone de texte

Mes efforts de code:

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 
+0

** J'ai essayé de Utilisez un StreamReader pour le faire ** S'il vous plaît partagez vos efforts !! –

+0

lecteur en utilisant comme nouveau StreamReader (o.FileName()) Bien que non reader.EndOfStream Dim ligne As String = reader.ReadLine() Dim X As String = line.Contains ("8080") Pour chaque X Dans NsTextBox1 .Text NsTextBox1.Text = NsTextBox1.Text + X sortie Alors que Suivant End While End Using – Frank

+0

S'il vous plaît modifier votre question et collez le code là. Cela aidera aussi les autres à comprendre votre question !!! –

Répondre

0

J'ai récemment écrit quelque chose qui devrait faire l'affaire bien, si la liste de proxy contient 1 IP par ligne sans espace blanc à la fin qui est.
Bien qu'il ne s'agisse pas du code le plus optimisé, cela fonctionne plutôt bien, voici quelques résultats de l'analyse d'une liste d'environ 6000 proxys.

Output

Vous souhaitez utiliser comme tel.

IO.File.WriteAllText("C:\ProxyOut.txt", ParseProxyList(IO.File.ReadAllText("C:\ProxyIn.txt"), 8080, 80, 431, 13)) 

EDIT: Oh, je viens de lire c'était pour une zone de texte, l'utilisation ne devrait pas être différente

TextBoxOut.Text = ParseProxyList(TextBoxIn.Text, 8080, 80, 431, 13)) 

Et la fonction elle-même:

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 
+0

Parfait, merci. – Frank

+0

@ user2579399 .. vous devez marquer cela comme la réponse! .. ça t'a aidé n'est ce pas? .. faites une coche verte sous le signe downvote .. – matzone

Questions connexes