2016-07-31 19 views
3

Ich habe eine Textdatei mit fast 45.000 Wörtern, ein Wort in jeder Zeile. Tausende dieser Wörter erscheinen mehr als 10 Mal. Ich möchte eine neue Datei erstellen, in der es kein wiederholtes Wort gibt. Ich habe Stream Reader benutzt, aber es liest die Datei nur einmal. Wie kann ich die wiederholten Worte loswerden? Bitte hilf mir. Dank Mein Code war wie dieserWiederholte Wörter aus der Textdatei entfernen

Try 
     File.OpenText(TextBox1.Text) 
    Catch ex As Exception 
     MsgBox(ex.Message) 
     Exit Sub 
    End Try 

    Dim line As String = String.Empty 
    Dim OldLine As String = String.Empty 
    Dim sr = File.OpenText(TextBox1.Text) 

    line = sr.ReadLine 
    OldLine = line 

    Do While sr.Peek <> -1 
     Application.DoEvents() 
     line = sr.ReadLine 
     If OldLine <> line Then 
       My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\Splitted File without Repeats.txt", line & vbCrLf, True) 
     End If 

     OldLine = line 
    Loop 


    sr.Close() 
    System.Diagnostics.Process.Start(My.Computer.FileSystem.SpecialDirectories.Desktop & "\Splitted File without Repeats.txt") 
    MsgBox("Loop terminated. Stream Reader Closed." & vbCrLf) 

Antwort

2

Sie LINQ für diese Distinct() Methode des verwenden können.

Dies wird für kleinere Dateien arbeiten:

Dim lines As String() = File.ReadAllLines("yourfile.txt") 
File.WriteAllLines("yourfile.txt", lines.Distinct().ToArray()) 
+1

sicher lieber Rakitić. Sie wünschen es. – gulmaily

Verwandte Themen