منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : نقل البيانات من ملف نصي لداتا جريد فيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
عندي ملف الرسائل بسحبة من الموبايل  بستخدم داتا جريد فيو ب 5 اعمدة

بنقلة لداتا جريد فيو بس المشكلة بيجيلي 3 صفوف زيادة عن الموجودة بالملف مش عارف بيظهر ازاي يعني الملف مكون من 5 لاين
استخدمت كود بيظهر 8 لاين مش عارف ازاي الكود


كود :
 For Each line As String In System.IO.File.ReadAllLines("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")
           DataGridView1.Rows.Add(line.Split(","))
       Next
وملف الرسائل الي بنقل منة بالمرفقات

في طلب اخر اريد وضع عمود اخر 6 يتم وضع فية جزء من لاين3 " استلام مبلغ 5.0 جنيه من رقم    0103039075

يتم وضع الرقم التليفون فية فقط (0103039075

 وفي لاين 4 م تحويل 5.0 جنيه لرقم 01022356425

يتم وضع الرقم بالعمود 6
PHP كود :
Dim txt As String IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")
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(",")
    
Me.DataGridView1.Rows.Add(r)
Next 
(16-02-18, 05:11 PM)طالب برمجة كتب : [ -> ]
PHP كود :
Dim txt As String IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")
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(",")
 
   Me.DataGridView1.Rows.Add(r)
Next 

نعم هذا هو المطلوب وفقك اللّة

اريد بدون ان اكثر عليك حل المشكلة الاخري وهي باستخلاص رقم التليفون وكود العملية من اللاين الاتي في حالة تم استلام مبلغ

حيث يضع كود العملية بالعمود السادس والرقم بالعمود السابع بنفس صف العملية الخاص بنفس اللا ين  ملحوظة لايوجد اقواس في الرسالة الحقيقية ت وضعها للاشارة للمطلوب فقط
كود :
تم استلام مبلغ 5.0 جنيه من رقم( 0103039075)؛ تاريخ العملية ‎‎08-12-17 15:34 رقم العملية( 000059949500 ). لو سحبت الفلوس هتاخد 5.0 دقايق و رسايل هدية ببلاش. اطلب #102*9* (لعملاء الكارت والكنترول فقط)
PHP كود :
Dim txt As String "تم استلام مبلغ 5.0 جنيه من رقم( 0103039075)؛ تاريخ العملية ‎‎08-12-17 15:34 رقم العملية( 000059949500 ). لو سحبت الفلوس هتاخد 5.0 دقايق و رسايل هدية ببلاش. اطلب #102*9* (لعملاء الكارت والكنترول فقط)"

Dim mmm As MatchCollection Regex.Matches(txt"\d{10,12}")

Dim tel As String ""
Dim code As String ""

For Each m In mmm
    
If m.Value.ToString.Count 10 Then tel m.Value.ToString
    
If m.Value.ToString.Count 12 Then code m.Value.ToString
Next

MsgBox
("Tel: " tel)
MsgBox("Code: " code
(16-02-18, 09:39 PM)طالب برمجة كتب : [ -> ]
PHP كود :
Dim txt As String "تم استلام مبلغ 5.0 جنيه من رقم( 0103039075)؛ تاريخ العملية ‎‎08-12-17 15:34 رقم العملية( 000059949500 ). لو سحبت الفلوس هتاخد 5.0 دقايق و رسايل هدية ببلاش. اطلب #102*9* (لعملاء الكارت والكنترول فقط)"

Dim mmm As MatchCollection Regex.Matches(txt"\d{10,12}")

Dim tel As String ""
Dim code As String ""

For Each m In mmm
    If m
.Value.ToString.Count 10 Then tel m.Value.ToString
    If m
.Value.ToString.Count 12 Then code m.Value.ToString
Next

MsgBox
("Tel: " tel)
MsgBox("Code: " code

بشكرك الف شكر علي تعبك ومجهودك معايا بس هتقل عليك بملاحظة


انا عايز تكملة لكود الداتا جريد فيو لان عندي  عشرات الرسائل عايز اسهل علي نفسي ويتم وضع الرقم تلقائي من كل رسالة الي اصف الخاص بالداتا جريد فيو بالعمود السابع
وكود العملية ضمن الصف بالعمود السادس واكون جزيل الشكر
طبعا في اكتر من لاين خاص بالعملاء المرسل الي رسائل منهم خاصة بمبالغ ورقم وكود عملية

الموضوع  هام لشغلي وعايزاسهل علي نفسي ادارة الرسائل بداتا جريد فيو ابحث فيها زي محب واختار العملاء بارقام تليفوناتهم واتاكد من العملية الخاصة بكل عميل
يعني تكملة لكودك دة 

كود :
Dim txt As String = IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")
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(",")
   Me.DataGridView1.Rows.Add(r)
Next
إذا كنت أنت من يصنع ملف txt فضع المشروع لإعادة برمجته بشكل يسهل عملك أكثر
(16-02-18, 10:31 PM)طالب برمجة كتب : [ -> ]إذا كنت أنت من يصنع ملف txt فضع المشروع لإعادة برمجته بشكل يسهل عملك أكثر
انا لا ابرمج الملف انا استخدم برنامج داخل الموبايل ويخرج ملف بامتداد csv  من رسائل الموبايل الفعلية كلها
وانا استخدم كود لفتح مسار الموبايل بالكمبيوتر ونقل محتواة بالداتا جريد فيو بالكود الذي امدتني بية  والملف سبق رفعة في اول مشاركة خاصة بيا لتسهيل وهو المستخدم والمطلوب نقل محتواة لداتا جريد بنفس المطلوب السابق

الملف موجود باول مرفق
على أساس رقم التلفون من 10 أرقام والكود من 12 رقم
PHP كود :
Dim txt As String IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")

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(",")
    
Dim mmm As MatchCollection Regex.Matches(r(4), "\d{10,12}")

    
Dim tel As String ""
    
Dim code As String ""
    
For Each m In mmm
        
If m.Value.ToString.Count 10 Then tel m.Value.ToString
        
If m.Value.ToString.Count 12 Then code m.Value.ToString
    Next

    Dim lst 
As New List(Of String)(r)

    
lst.Add(tel)
    
lst.Add(code)

    
Me.DataGridView1.Rows.Add(lst.ToArray)
Next 
(16-02-18, 11:07 PM)طالب برمجة كتب : [ -> ]على أساس رقم التلفون من 10 أرقام والكود من 12 رقم
PHP كود :
Dim txt As String IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")

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(",")
 
   Dim mmm As MatchCollection Regex.Matches(r(4), "\d{10,12}")

 
   Dim tel As String ""
 
   Dim code As String ""
 
   For Each m In mmm
        If m
.Value.ToString.Count 10 Then tel m.Value.ToString
        If m
.Value.ToString.Count 12 Then code m.Value.ToString
    Next

    Dim lst 
As New List(Of String)(r)

 
   lst.Add(tel)
 
   lst.Add(code)

 
   Me.DataGridView1.Rows.Add(lst.ToArray)
Next 

جزاك اللّة الف خير عني وعن غيري في الدنيا والاخرة

في شيء بسيط اخير الكود يعمل تمام بس في لاين اخر بيظهر رقم تليفونة وهو خارج اللاين المطلوب
وهو لا ين تم تحويل رقم لمبلغ والمفروض لاين تم استلام فقط الي يظهر

طلب اخر علي اي اساس اخترت لاين الخاص بالاستلام مش شايف اي كلمة او جزء معبر عن  الكلمة وطريقة اقتصاص الجزء
 التمس لي العذر ليس لدي خبرة بااوامر
PHP كود :
Regex 
رقم الهاتف أحيانا يكون بكلمة (لرقم) وأحيانا (من رقم) مسألة اقتناص رقم الهاتف والكود ليست دقيقة دائما فقد تتغير الكلمات والمسافات والأقواس
PHP كود :
Dim txt As String IO.File.ReadAllText("D:\SMS\SMS١٥٠٢٢٠١٨_٠٤_٥٣_٤١.txt")

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(",")

    
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 lst 
As New List(Of String)(r)
    lst.Add(tel)
    lst.Add(code)

    Me.DataGridView1.Rows.Add(lst.ToArray)
Next 
الصفحات : 1 2