PDA

View Full Version : سوال: ادغام چند فایل تکست در vb.net



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

موفق باشید .....