第一个问题: 我正在寻找一种最简单的方法来一次读取多个文本文件,并从每个文本文件中提取所有重复的行,并将这些重复的行复制到一个新的文本文件,标题代表父文本文件的名称。我一次处理超过20个文本文件,逐个浏览每个文本都是一团糟。其次,我正在处理大/重文件(每个文件中大约30,000行)。我目前正在使用" Stream Reader"和#34; Stream Writer"而我更喜欢采用相同的方法来理解我。或欢迎任何新的简单方式! 第二个问题: 我想比较2个文本文件,并将重复的行放到新的文本文件中。我不想删除/删除/覆盖:只是将它们复制到新的文本文件中。 请使用openfiledialog和savefiledialog作为文件。
提前多多感谢。 最好的祝福 VB_Learner
Dim Dim optxtfile As New OpenFileDialog
optxtfile.RestoreDirectory = True
optxtfile.Multiselect = False
optxtfile.Filter = "txt files (*.txt)|*.txt"
optxtfile.FilterIndex = 1
optxtfile.ShowDialog()
If (Not optxtfile.FileName = Nothing) Then
Dim lines As New List(Of String)
Using sr As New System.IO.StreamReader(optxtfile.FileName)
While sr.Peek <> -1
Dim line As String = sr.ReadLine()
Dim isNew As Boolean = True
For Each dupl As String In lines
If (dupl = line) Then isNew = False
Next
If (isNew) Then lines.Add(sr.ReadLine())
End While
End Using
Dim svDir As String
If (My.Computer.FileSystem.FileExists(optxtfile.FileName)) Then
My.Computer.FileSystem.DeleteFile(optxtfile.FileName)
svDir = optxtfile.filename
Dim svtxtfile As New SaveFileDialog
svtxtfile.RestoreDirectory = True
svtxtfile.Filter = "txt files (*.txt)|*.txt"
svtxtfile.FilterIndex = 1
svtxtfile.ShowDialog()
If (svtxtfile.FileName = Nothing) Then
svDir = optxtfile.FileName
Else
svDir = svtxtfile.FileName
End If
End If
Using write2text As New System.IO.StreamWriter(svDir)
For Each line As String In lines
write2text.WriteLine(line)
Next
End Using
End If
End Sub