读取多个textfiles.txt并将所有重复行复制到VB .net中的新textfile.txt

时间:2016-10-20 06:04:16

标签: vb.net vb.net-2010

第一个问题: 我正在寻找一种最简单的方法来一次读取多个文本文件,并从每个文本文件中提取所有重复的行,并将这些重复的行复制到一个新的文本文件,标题代表父文本文件的名称。我一次处理超过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

0 个答案:

没有答案