ahmad19
جمعه 19 شهریور 1395, 02:49 صبح
سلام 
من هر روز یه سری گزاش به دستم می رسه مثل ایمیل ها عضویت در خبرنامه 
اینا تو فایل های تکست هستند 
می خوام به برنامه با وی بی بنویسم که این فایل رو باهم ادغام کنه و تکراری ها رو حذف کنه و یه خروجی تکست بهم بده 
باید از چه توابعی استفاده کنم برا ادغام و حذف موارد تکراری ؟
ممنون
gilsoft
یک شنبه 21 شهریور 1395, 00:48 صبح
سلام دوست عزیز
اینم کدی که میخواستی:
Imports System.IO
Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        With OpenFileDialog1
            .AddExtension = True
            .CheckPathExists = False
            .CheckFileExists = False
            .Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
            .FilterIndex = 1
            .Multiselect = True
            .RestoreDirectory = True
            .SupportMultiDottedExtensions = True
        End With
        With SaveFileDialog1
            .AddExtension = True
            .CheckFileExists = False
            .CheckPathExists = True
            .DefaultExt = "txt"
            .Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
            .FilterIndex = 1
            .InitialDirectory = Application.StartupPath
            .SupportMultiDottedExtensions = True
        End With
        With FolderBrowserDialog1
            .SelectedPath = Application.StartupPath
            .ShowNewFolderButton = True
        End With
    End Sub
    Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click
        Application.Exit()
    End Sub
    Private Sub SaveFileDialog1_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
        Dim FileReader As StreamReader
        Dim temp As String
        If File.Exists(SaveFileDialog1.FileName) Then File.Delete(SaveFileDialog1.FileName)
        For i As Integer = 0 To LstFiles.Items.Count - 1
            FileReader = File.OpenText(LstFiles.Items.Item(i))
            temp = FileReader.ReadToEnd
            File.AppendAllText(SaveFileDialog1.FileName, temp, System.Text.Encoding.UTF8)
        Next
        Dim prompt As String = String.Concat(lbl_NoOfFiles.Text, " files merged succesfully")
        MessageBox.Show(prompt, "Merge", MessageBoxButtons.OK, MessageBoxIcon.Information)
        LstFiles.Items.Clear() : lbl_NoOfFiles.Text = "0"
    End Sub
    Private Sub BtnFileMerge_Click(sender As System.Object, e As System.EventArgs) Handles BtnFileMerge.Click
        OpenFileDialog1.ShowDialog()
        Dim files() As String = OpenFileDialog1.FileNames
        For i As Integer = 0 To files.Length - 1
            LstFiles.Items.Add(files(i))
        Next
    End Sub
    Private Sub BtnFolderMerge_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFolderMerge.Click
        FolderBrowserDialog1.ShowDialog()
        Dim files() As String = Directory.GetFiles(FolderBrowserDialog1.SelectedPa th, "*.txt")
        For i As Integer = 0 To files.Length - 1
            LstFiles.Items.Add(files(i))
        Next
        Label2.Visible = True
        lbl_NoOfFiles.Text = CStr(LstFiles.Items.Count)
        lbl_NoOfFiles.Visible = True
    End Sub
    
    Private Sub btnMerge_Click(sender As System.Object, e As System.EventArgs) Handles btnMerge.Click
        SaveFileDialog1.ShowDialog()
    End Sub
    Private Sub btnRemove_Click(sender As System.Object, e As System.EventArgs) Handles btnRemove.Click
        If LstFiles.Items.Count > 0 Then
            If LstFiles.SelectedIndex >= 0 Then
                LstFiles.Items.RemoveAt(LstFiles.SelectedIndex)
            End If
        End If
    End Sub
End Class
فقط اون قسمت چک کردن فایلهای تکراری رو ننوشتم ( البته نوشتنش کاری نداره .. ولی بهتره خودت تحقیق کنی )
اینم لینک دانلود پروژه:
MergeTextFiles_Ver1_0.rar (http://s6.picofile.com/d/abb9462b-46c4-4b55-9603-ce9500b59dc3/MergeTextFiles_Ver1_0.rar)
 
http://s6.picofile.com/d/abb9462b-46c4-4b55-9603-ce9500b59dc3/MergeTextFiles_Ver1_0.rar
موفق باشید .....
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.