24-09-18, 12:01 AM
السلام عليكم
عندي ملف رسائل مسحوبة من الموبايل بصيغة csv
الملف ياخذ الشكل التالي :-
Sno,Date,Contact Name,Number,SMS Body
1,الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م,Hekaya,Hekaya,خصم 50% علي تجديد الباقه الشهرية لمدة شهر كلم #10*011* للاشتراك قبل التجديد
بنقل محتوي الملف الي الداتا جريد فيو بناء علي نقل كل قيمة بعد الفاصلة , بالملف كعمود بالداتا جريد فيو
المشكلة اما مي كالاتي
1- اظهار الرسائل المرسلة بعنوان mony وهيا نفس المكان الخاص Hekaya بالفاصلة 2 بالجملة الواحدة بالملف النصي
2- حذف الرسائل التي لا تحتوي علي مرسل باسم mony او قيمتها null
3- بعض اللينات بالملف النصي تكون مكررة الرسائل او قيمتها فارغة اريد حذفها
4- التاريخ يظهر بالشكل الاتي = الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م اريد حذف at وتبديلها باسم اليوم بالشكل التالي
٢٢/٠٨/٢٠١٨ الأربعاء ٠١:٢٦:٣٠ م بدل من الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م
5- طبعا طريقة الريجيستر لا اجداستخدامها ساعدني احد الاخوة لحذف جزء من اللينات لاستخراج المبالغ المحولة الي واريدها كما هيا
الكود الي استخدمتة
مشاكلة
1- عدم حذف المكرر مباشرتا من الملف اثناء نقلة
2- عدم حذف القيم الفارغة كما سبق وذكرت
3- تعديل التاريخ كما سبق
عندي ملف رسائل مسحوبة من الموبايل بصيغة csv
الملف ياخذ الشكل التالي :-
Sno,Date,Contact Name,Number,SMS Body
1,الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م,Hekaya,Hekaya,خصم 50% علي تجديد الباقه الشهرية لمدة شهر كلم #10*011* للاشتراك قبل التجديد
بنقل محتوي الملف الي الداتا جريد فيو بناء علي نقل كل قيمة بعد الفاصلة , بالملف كعمود بالداتا جريد فيو
المشكلة اما مي كالاتي
1- اظهار الرسائل المرسلة بعنوان mony وهيا نفس المكان الخاص Hekaya بالفاصلة 2 بالجملة الواحدة بالملف النصي
2- حذف الرسائل التي لا تحتوي علي مرسل باسم mony او قيمتها null
3- بعض اللينات بالملف النصي تكون مكررة الرسائل او قيمتها فارغة اريد حذفها
4- التاريخ يظهر بالشكل الاتي = الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م اريد حذف at وتبديلها باسم اليوم بالشكل التالي
٢٢/٠٨/٢٠١٨ الأربعاء ٠١:٢٦:٣٠ م بدل من الأربعاء ٢٢/٠٨/٢٠١٨ at ٠١:٢٦:٣٠ م
5- طبعا طريقة الريجيستر لا اجداستخدامها ساعدني احد الاخوة لحذف جزء من اللينات لاستخراج المبالغ المحولة الي واريدها كما هيا
الكود الي استخدمتة
مشاكلة
1- عدم حذف المكرر مباشرتا من الملف اثناء نقلة
2- عدم حذف القيم الفارغة كما سبق وذكرت
3- تعديل التاريخ كما سبق
كود :
Sub removduplicate()
On Error Resume Next
' حذف المكرر
For intI = DATAGRID_NAME.Rows.Count - 1 To 0 Step -1
For intJ = intI - 1 To 0 Step -1
If DATAGRID_NAME.Rows(intI).Cells(1).Value = DATAGRID_NAME.Rows(intJ).Cells(1).Value AndAlso DATAGRID_NAME.Rows(intI).Cells(3).Value = DATAGRID_NAME.Rows(intJ).Cells(3).Value Or DATAGRID_NAME.Rows(intI).Cells(2).Value = Nothing Then
DATAGRID_NAME.Rows.RemoveAt(intI)
End If
Next
Next
DATAGRID_NAME.Refresh()
For i As Integer = 0 To DATAGRID_NAME.Rows.Count - 1
DATAGRID_NAME.Rows(i).Cells(0).Value = (i + 1).ToString
Label2.Text = i + 1
Next
End Sub
Private Sub LIST_FILE_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LIST_FILE.SelectedIndexChanged
On Error Resume Next
DATAGRID_NAME.Rows.Clear()
Dim txt As String = IO.File.ReadAllText(LIST_FILE.SelectedItem)
Dim arr() As String = (From m In Regex.Matches(txt, "\d+,.+") Select CStr(m.Value)).ToArray
For Each a In arr
Dim r = a.Split(",")
If Not IsDBNull(r(2)) AndAlso r(2) = "mony" Then
Dim tel As String = Regex.Match(r(4), "(?<=(من رقم)\s?\(?\s?)\d{10,}").Value
Dim code As String = Regex.Match(r(4), "(?<=(رقم العملية)\s?\(?\s?)\d{10,}").Value
Dim MONY As String = Regex.Match(r(4), "(?<=(مبلغ)\s?\(?\s?)\d{1,}").Value
Dim lst As New List(Of String)(r)
lst.Add(code)
lst.Add(tel)
lst.Add(MONY)
Me.DATAGRID_NAME.Rows.Add(lst.ToArray)
End If
Next
DATAGRID_NAME.Refresh()
removduplicate()
End Sub