اعلن هنا
أكاديمية الصقر للتدريب
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا



أهلا وسهلا بك زائرنا الكريم في أكاديمية الصقر للتدريب، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .





استخراج أرقام موبايل من ملف نصي (موضوع للبحث)

السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أحب أن أقدم لكم موضوع بحث بعنوان quot;استخراج أرقام موبايل من م ..



05-08-2018 03:58 مساء
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 4000
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 297
قوة السمعة : 11348
الاعجاب : 4035
 offline 

السلام عليكم ورحمة الله وبركاته

إخواني وأحبابي في الله

أحب أن أقدم لكم موضوع بحث بعنوان "استخراج أرقام موبايل من ملف نصي" ، والبحث هو أفضل وسيلة للتعلم ..

بفرض أن لديك ملف نصي (مرفق في الموضوع) والملف به أرقام موبايلات ورقم الموبايل مكون من 11 رقم ، والأرقام يجب أن تبدأ بـ 010 أو 011 أو 012 أو 015 .. 
تلك هي المعطيات الخاصة بالموضوع

النتائج المتوقعة 
استخراج الأرقام المطابقة للشروط وهي 5 أرقام في الملف النصي ، ووضعها في العمود الأول في ورقة العمل
01251056565
01024698500
01124710035
01265432178
01563852014

أرجو أن يكون هناك تفاعل بالموضوع لتتعلموا المزيد والمزيد

**************
بعد العديد من المشاركات في الموضوع ـ أقدم لكم الملف النهائي بالكود الذي يقوم باستخراج أرقام الموبايل من الملف النصي باستخدام الـ Regex
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب
**************

كان معكم أخوكم في الله / ياسر خليل أبو البراء

أثارت هذه المشاركة إعجاب: الصقر، مالك ماريه، عبدالله فتحى،





05-08-2018 05:18 مساء
مشاهدة مشاركة منفردة [1]
محمود ابو الدهب
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 14
المشاركات : 652
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 4-7-1990
الدعوات : 56
يتابعهم : 6
يتابعونه : 128
قوة السمعة : 2205
الاعجاب : 803
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
ارجوا اعادة رفع الملف مرة اخرى استاذ ياسر حيث يوجد خطأ في التحميل مع ان مؤشر التحميل يظهر عدد مرات التحميل ولا يوجد تحميل
وارجوا ايضاح هل المطلوب مطلوب بمعادلة ام كود برمجي


عفوا تم التحميل هههههه
 

أثارت هذه المشاركة إعجاب: غاندي مخول،


توقيع :محمود ابو الدهب
لى عظيم الشرف بالانضمام لهذا الصرح العظيم
وكم أتمنى من الله
ان يعيننى ويعلمنى من علمة الواسع فهو ولي ذالك وهو على كل شي قدير

تحياتى وتقدير للجميع  محمود ابوالدهب


05-08-2018 06:29 مساء
مشاهدة مشاركة منفردة [2]
محمود ابو الدهب
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 14
المشاركات : 652
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 4-7-1990
الدعوات : 56
يتابعهم : 6
يتابعونه : 128
قوة السمعة : 2205
الاعجاب : 803
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
ما رايك بالكود التالى على فرض اننا نقلنا البيانات من الملف النصي ووضعنها بشيت اكسيل من الخلية a1

نضع الكود التالى
Sub show_fon_nm()
Dim i     As Integer
Dim fr    As String
Dim ed    As Integer
Dim lr    As Long
Dim rng   As Range


  ActiveSheet.Range("b2:b1000").ClearContents
      For Each rng In ActiveSheet.Range("A1:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)
         fr = ""
         ed = 0
         For i = 1 To Len(rng)
                If IsNumeric(Mid(rng, i, 1)) Then
                    fr = fr & Mid(rng, i, 1)
                    ed = ed + 1
                ElseIf ed = 11 And Mid(fr, 1, 1) = 0 And Mid(fr, 2, 1) = 1 Then
                    lr = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
                    Cells(lr + 1, 2).NumberFormat = "@"
                    Cells(lr + 1, 2) = fr
                    fr = ""
                End If
         Next i
                If ed = 11 And Mid(fr, 1, 1) = 0 And Mid(fr, 2, 1) = 1 Then
                    lr = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
                    Cells(lr + 1, 2).NumberFormat = "@"
                    Cells(lr + 1, 2) = fr
                    fr = ""
                End If
      Next rng
End Sub



صورة بالنتيجة
NDIxMzEx111111111111111111111111111

واذا اراد احدم شرح انا تحت امرهم 

 MzE3NjQ0MQ7979Untitled

اسف الكود طويل شويه ممكن احد الخبراء يعمله في سطرين بس عندنا في مصر في طنطا الارياف نقول كل برغوت على اد ده وانا اسف لسه مبتدأ smile  biggrin2
 
 
 


أثارت هذه المشاركة إعجاب: salim، YasserKhalil، الصقر، عبدالله فتحى،


توقيع :محمود ابو الدهب
لى عظيم الشرف بالانضمام لهذا الصرح العظيم
وكم أتمنى من الله
ان يعيننى ويعلمنى من علمة الواسع فهو ولي ذالك وهو على كل شي قدير

تحياتى وتقدير للجميع  محمود ابوالدهب


05-08-2018 07:50 مساء
مشاهدة مشاركة منفردة [3]
salim
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 43
المشاركات : 97
الجنس : ذكر
تاريخ الميلاد : 1-5-1989
يتابعهم : 13
يتابعونه : 4
قوة السمعة : 1037
الاعجاب : 155
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
(على فكرة الملف غير قابل للتحميل بل تظهر هذه الصورة)
NDYzNjMxMQ7979YasserCapture
ما رأيك بهذا الكود   (انا أخذت فقط 01 لضيق الوقت) يمكن ادراج بقية الارقام (05 و07 ....) من خلال Arrary يجمعهم  واستعمال دالة Match

Option Explicit
Sub splt()
Dim a
Dim x%
Dim m%: m = 1
Dim Phone_array()
 Range("c:c").ClearContents
a = Split(Trim(Range("a1")), " ")

For x = 1 To UBound(a) - LBound(a)
 If Mid(a(x - 1), 1, 2) = "01" And Len(a(x - 1)) = 11 Then
  ReDim Preserve Phone_array(1 To m)
   Phone_array(m) = a(x - 1)
   m = m + 1
   End If
   Next
    Range("c1").Resize(m - 1) = Application.Transpose(Phone_array)
    Range("c1").Resize(m - 1).NumberFormat = "@"
    Erase a: Erase Phone_array
End Sub



 
 
 


أثارت هذه المشاركة إعجاب: محمود ابو الدهب، YasserKhalil، الصقر، عبدالله فتحى،




05-08-2018 08:54 مساء
مشاهدة مشاركة منفردة [4]
Eslam Abdullah
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 927
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 48
قوة السمعة : 5352
الاعجاب : 1522
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
الهووم وورك امستر biggrin2
Sub M_Yasser()
Dim lrw, i%, arr()
Range("B:B").ClearContents
lrw = Range("A:A").Find("*", , , , , 2).Row
ReDim arr(1 To lrw)
    For i = 1 To lrw
       If Left(Cells(i, 1).Text, 2) = "01" Then arr(i) = "'" & Cells(i, 1).Text
    Next i
       Cells(1, 2).Resize(UBound(arr)) = Application.Transpose(arr)
End Sub

أثارت هذه المشاركة إعجاب: محمود ابو الدهب، YasserKhalil، الصقر، عبدالله فتحى،




05-08-2018 09:53 مساء
مشاهدة مشاركة منفردة [5]
محمود ابو الدهب
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 14
المشاركات : 652
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 4-7-1990
الدعوات : 56
يتابعهم : 6
يتابعونه : 128
قوة السمعة : 2205
الاعجاب : 803
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
الهوم بالشرح لكل مستر للمستر يا مستر هههههههههه

أثارت هذه المشاركة إعجاب: Eslam Abdullah، الصقر، عبدالله فتحى،


توقيع :محمود ابو الدهب
لى عظيم الشرف بالانضمام لهذا الصرح العظيم
وكم أتمنى من الله
ان يعيننى ويعلمنى من علمة الواسع فهو ولي ذالك وهو على كل شي قدير

تحياتى وتقدير للجميع  محمود ابوالدهب


05-08-2018 10:50 مساء
مشاهدة مشاركة منفردة [6]
salim
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 43
المشاركات : 97
الجنس : ذكر
تاريخ الميلاد : 1-5-1989
يتابعهم : 13
يتابعونه : 4
قوة السمعة : 1037
الاعجاب : 155
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
ممكن هذا الكود يقوم بالعمل كاملاً (تم وضع النص في الخلية A1)
مع انه أفضّل انا استعمال (Regular Expression (Reg_Ex  لكن للاسف خبرتي فيها ليست كفاية
اتمنى من الأخ ياسر وضع بعض الدروس عنها

Option Explicit
Sub splt()

Dim a
Dim x%
Dim m%: m = 1
Dim r As Byte, t As Byte
Dim s As Byte, v As Byte
Dim verification As Byte
Dim Phone_array()

 Range("c:c").ClearContents
a = Split(Trim(Range("a1")), " ")
For x = 1 To UBound(a) - LBound(a)
    r = -(Mid(a(x - 1), 1, 3) = "010")
    t = -(Mid(a(x - 1), 1, 3) = "011")
    s = -(Mid(a(x - 1), 1, 3) = "012")
    v = -(Mid(a(x - 1), 1, 3) = "015")
    verification = (r + s + t + v) + Len(a(x - 1))
        If verification = 12 Then
         ReDim Preserve Phone_array(1 To m)
         Phone_array(m) = a(x - 1)
         m = m + 1
        End If
Next
On Error GoTo End_Sub
    Range("c1").Resize(m - 1) = Application.Transpose(Phone_array)
    Range("c1").Resize(m - 1).NumberFormat = "@"
End_Sub:
Err.Clear
    Erase a: Erase Phone_array
End Sub


أثارت هذه المشاركة إعجاب: YasserKhalil، محمود ابو الدهب، الصقر، عبدالله فتحى،




05-08-2018 10:57 مساء
مشاهدة مشاركة منفردة [7]
Eslam Abdullah
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 927
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 48
قوة السمعة : 5352
الاعجاب : 1522
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
الحل السابق كان للارقام البادئة من 01 فقط
حل اخر على السريع كدا للارقام البادئة ب 010 و 011 و 012 و 015
ودا شرح سريع بروضوا معلش مشغول اوى اليومين دول  يأبو الدهب 81
شوفها وان وقفت معاك حاجه قولى وانا معاك smile

Sub M_Yasser2()
'Variant ومتغير من النوع Integer اعلان عن متغيرين من النوع
Dim lrw, i%, arr()
'حذف نطاق النتائج
Range("B:B").ClearContents
':) تحديد أخر صف ولو مفيش بيانات فى العمود الاول هيجيب خطا بس انا مزاجى كدا
lrw = Range("A:A").Find("*", , , , , 2).Row
'اعادة تعيين ابعاد المصفوفة لتكون من 1 لرقم اخر صف به بيانات
ReDim arr(1 To lrw)
'بدأ حلقة تكرارية من 1 حتى اخر صف به بيانات
    For i = 1 To lrw
    '(010,011,012,015) اختبار شرط وجود الارقام التالية بكل خلية بها الرقم
    'اذا تحقق الشرط يتم تعبئة المصفوفة بالرقم
       If IsNumeric(Application.Match(Left(Cells(i, 1).Text, 3), Array("010", "011", "012", "015"), 0)) Then arr(i) = "'" & Cells(i, 1).Text
    ':D اعادة الحلقة التكرارية مش حلقة افتح الباب
    Next i
    'حتى اخر صف فيه بيانات داخل المصفوفة B1 ادخال بيانات المصفوفة بالخلايا من الخلية
       Cells(1, 2).Resize(UBound(arr)) = Application.Transpose(arr)
    'كدا شطبنا والسلام عليكم
End Sub

أثارت هذه المشاركة إعجاب: محمود ابو الدهب، YasserKhalil، الصقر، عبدالله فتحى،




05-08-2018 11:43 مساء
مشاهدة مشاركة منفردة [8]
Eslam Abdullah
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 927
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 48
قوة السمعة : 5352
الاعجاب : 1522
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
حل أخر  للارقام البادئة ب 010 و 011 و 012 و 015
دون استخدام المصفوفات

Sub M_Yasser3()
Dim lrw, i%
Range("B:B").ClearContents
lrw = Cells(Rows.Count, 1).End(3).Row
    For i = 1 To lrw
    Select Case Left(Cells(i, 1), 3)
        Case "010", "011", "012", "015"
            Cells(i, 2) = "'" & Cells(i, 1).Text
        End Select
    Next i
End Sub

أثارت هذه المشاركة إعجاب: محمود ابو الدهب، YasserKhalil، الصقر، عبدالله فتحى،




06-08-2018 12:07 صباحا
مشاهدة مشاركة منفردة [9]
محمود ابو الدهب
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 14
المشاركات : 652
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 4-7-1990
الدعوات : 56
يتابعهم : 6
يتابعونه : 128
قوة السمعة : 2205
الاعجاب : 803
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
هههههه مصمم يا حبيب الملايين
اكمل المطلوب ثم ارسل
وانته مصمم ليه ان الامر بطلبه ليا نحن في حلقات تعليمية اى المفروض يدخل هنا من لا يعمل ومن يعلم اى يجب ان نراعي ان هناك من لا يعلم ويريد ان يتعلم 
وشكرا على الشرح وبارك الله فيك

ولكن في كلا الكودين لم تحقق المطلوب ولم يعطي نتائج no_1 biggrin2
وعليكم السلام ورحمة الله وبركاته 
"اوعى تكون بتزعل زى استاذ ياسر دائما احب الهزار في كلامى علشان ارفرش الجو والكمبيوتر كمان smile "
 

أثارت هذه المشاركة إعجاب: YasserKhalil، Eslam Abdullah، الصقر،


توقيع :محمود ابو الدهب
لى عظيم الشرف بالانضمام لهذا الصرح العظيم
وكم أتمنى من الله
ان يعيننى ويعلمنى من علمة الواسع فهو ولي ذالك وهو على كل شي قدير

تحياتى وتقدير للجميع  محمود ابوالدهب


06-08-2018 12:36 صباحا
مشاهدة مشاركة منفردة [10]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 4000
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 297
قوة السمعة : 11348
الاعجاب : 4035
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
بارك الله فيكم إخواني وأحبابي في الله
صراحة لم أتوقع كل هذا التفاعل المثمر في الموضوع ..

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

أثارت هذه المشاركة إعجاب: Eslam Abdullah، الصقر،




06-08-2018 12:38 صباحا
مشاهدة مشاركة منفردة [11]
Eslam Abdullah
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 927
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 48
قوة السمعة : 5352
الاعجاب : 1522
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
المشاركة الأصلية كتبت بواسطة: محمود ابو الدهب »
هههههه مصمم يا حبيب الملايين
اكمل المطلوب ثم ارسل
وانته مصمم ليه ان الامر بطلبه ليا نحن في حلقات تعليمية اى المفروض يدخل هنا من لا يعمل ومن يعلم اى يجب ان نراعي ان هناك من لا يعلم ويريد ان يتعلم 
وشكرا على الشرح وبارك الله فيك

ولكن في كلا الكودين لم تحقق المطلوب ولم يعطي نتائج no_1 biggrin2
وعليكم السلام ورحمة الله وبركاته 
"اوعى تكون بتزعل زى استاذ ياسر دائما احب الهزار في كلامى علشان ارفرش الجو والكمبيوتر كمان smile "
 

 ههههههههههه حبيبى ياحوده ، عندك حق أنا اللى غلطان
أنا بس دايخ حبتين
لكن الكودين اكيد مجربهم قبل وضعهم وشغالين عادى

أثارت هذه المشاركة إعجاب: محمود ابو الدهب، الصقر،




06-08-2018 12:39 صباحا
مشاهدة مشاركة منفردة [12]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 4000
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 297
قوة السمعة : 11348
الاعجاب : 4035
 offline 
look/images/icons/i1.gif استخراج أرقام موبايل من ملف نصي (موضوع للبحث)
الأخ العزيز سليم
بارك الله فيك وجزاك الله خيراً .. النتائج أيضاً أتت بـ 016 
كما أن الأكواد كلها تعتمد على نسخ محتويات الملف النصي ، والمطلوب هو التعامل مع الملف النصي الذي اسمه Sample.txt والموجود في نفس مسار المصنف الحالي .. أي عملية الاستخراج والتعامل يكون مع الملف النصي بشكل مباشر
والمشاركة رقم 6 أتت بـ 3 أرقام فقط ومعهم نص في أول النتائج ..أعتقد يحتاج لبعض الضبط

في الحقيقة أنك أصبت حين قلت أنه من الأفضل استخدام الـ Regular Expressions وهو المقصود في الموضوع ... أن نتعلم شيئاً جديداً ... فلنبحث في الموضوع وندلي بدلونا .. لأن الموضوع يحتاج لبحث والأفضل أن يقوم بالبحث أكثر من شخص للوصول لمعلومات أكثر

أثارت هذه المشاركة إعجاب: الصقر،





المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
استخراج أرقام موبايل من ملف نصي Eslam Abdullah
8 670 YasserKhalil

الكلمات الدلالية
استخراج ، أرقام ، موبايل ، (موضوع ، للبحث) ،


 







اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.



الساعة الآن 01:43 صباحا

أعلن هنا
أعلن هنا
أعلن هنا