2016-07-31 16 views
3

私はテキストファイルを持っています。ほぼ45,000語、各行に1語です。これらの単語の何千も10回以上表示されます。私は繰り返される単語がない新しいファイルを作成したい。私はストリームリーダーを使用しましたが、ファイルを一度だけ読み込みます。どのように私は繰り返し単語を取り除くことができます。私を助けてください。おかげ 私のコードは、あなたがこのためにLINQのDistinct()メソッドを使用することができ、このテキストファイルから繰り返し単語を削除する

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) 

答えて

2

のようでした。

これは小さなファイルのために動作します:

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

確かに愛するRakitić。あなたはそれを分かりません。 – gulmaily

関連する問題