logo

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
Hatem Eissa hassona229-- لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة اكسيل مشاريع جاهزه



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





03-03-2021 09:18 مساءً
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
بسم الله والحمد لله والصلاة والسلام على رسول الله

اليوم أقدم لكم الدالة المعرفة SplitEA فى إصدارها الثانى حيث ،،،
فى الإصدار الأول من الدالة SplitEA فقد تمتعت الدالة بعدة مزايا ومن أهمها:

MTczNDYxMQ6363NzAxMjIx002
*تسمح بالتعامل مع اى فاصل مهما كان عدده
*المرونة اذا كُتَب بشكل عشوائى او متكرر
*المرونه فى اختيار التعامل مع الاسماء المركبه او العاديه
*المرونه فى التعامل مع اكثر من فاصل فى آن واحد!
*المرونه فى تجاهل الفواصل الزائده فى بداية ونهاية النص
*استخدام رموز خاصه كالذى تسمح بفصل النصوص فقط او الارقام فقط او اى نمط يمكن تخيله!


بناء الدالة كالتالى
CODE
=SplitEA(text,[break],[row])

أول بارميتر اجبارى وهو النص أو الإسم
ثانى بارميتر اختيارى وهو الفاصل ويمكن كتابة اكثر من فاصل وعند التجاهل تكون المسافه هى الفاصل الافتراضى
ثالث بارميتر اختيارى وهو رقم النص او الاسم بعد الانقسام وعند التجاهل يكون رقم ١ أى الاسم الاول هو الافتراضى



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

قم بكتابة مسافة أو مسافة كالتالى " | " أو مسافة بين قوسين مربعين كالتالى "[]"


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

من مميزات الدالة انها تبحث بنظام الريجيكس
فيمكنك مثلا، مثلا مثلا يعنى:
استخدام الفاصل باك سلاش مع d ليكون الارقام هي الفاصل بين النص
واستخدام الرمز باك سلاش مع D ليكون أى شئ فاصل عدا الارقام يعنى استخراج الارقام منقسمه
ويمكنك استخدام الرمز | أو أحرف بين القوسين [] كعامل OR لأكثر من فاصل
وغيرها من الرموز الخاصه بالريجيكس
ولا يهم كم كان الفاصل متكرر ولا يهم وجود المسافات الزائدة فكل هذا يتم تنظيفه



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



وقد ظهرت أمام مستخدمى الدالة إحتياجات جديدة فقمت [باصدار نسخة جديدة] لتزيد الدالة من تميزها حيث:


١- تم معالجة أخطاء برمجية وتحسين فى سرعة أدائها


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

*فى [الإصدار الثانى] يمكنك بكل سهولة إستدعاء خانة الفاصل بالسالب مثل (-١) لإستدعاء آخر خانة و (-٢) لإستدعاء ما قبل آخر خانة وهكذا وصولاً لأول خانة
*وعلى سبيل المثال ذلك يتميز بمرونة تجعلك تقوم بالفرز أو التصفية على أساس آواخر النص العادى أو المركب كالتعامل مع أولة


٣- كما يمكنك تسجيل الجزء الأول الخاص ببداية (النص المركب)
ويمكن تسجيل الجزء الثانى الخاص بنهاية (النص المركب)
المميز هنا أنه كلما ظهر نص من الجزء الثانى يُضَم مع الذى قبله مهما بلغ النص المركب تعداده...


وأما عن كود الدالة فهو كالتالى
CODE
Function SplitEA(txt As String, Optional brk As String = " ", Optional rw As Integer = 1) As String
'Developer: Eslam Abdullah
Dim ar() As String, nm(), m As Byte, i%
nm = Array("عبد","ابو","أبو","ام","أم","بن","ابن","إبن","آل",1,"الله","بالله","الزهراء","العهد","النصر","الحق","الاسلام","الإسلام","الدين","الصديق","النور")

    With CreateObject("VBScript.RegExp"): .Global = 1
        .Pattern = "(^1|" & brk & "|1$)+": txt = .Replace(1 & txt & 1, brk)
    End With
  
    If brk = " " Then
        ar = Split(Application.Trim(Replace(txt, "_", " ")))
        For i = 0 To UBound(ar)
            m = Val(CStr(Application.Match(ar(i), nm, 0)))
            If m > Application.Match(1, nm, 0) Then ar(i) = "_" & ar(i) Else ar(i) = ar(i) & IIf(m, "_", " ")
        Next i
            ar = Split(Replace(Replace(RTrim(Join(ar, "")), " _", "_"), "__", "_"))
            If rw And Abs(rw) < UBound(ar) + 2 Then SplitEA = Replace(ar((UBound(ar) + 2) * -(rw < 0) + rw - 1), "_", " ") Else SplitEA = ""
            Exit Function
    End If
    
ar = Split(Replace(Left(txt, Len(txt) - Len(brk)), brk, "", , 1), brk)
If rw And Abs(rw) < UBound(ar) + 2 Then SplitEA = ar((UBound(ar) + 2) * -(rw < 0) + rw - 1) Else SplitEA = ""
End Function


وآخيراً وليس آخراً إليكم ملف مرفق بتطبيق الدالة المعرفة عملياً فى إصدارها الثانى
مع تحياتى أخوكم فى الله ..... اسلام عبدالله
 
 
  SplitEA UDF.rar   تحميل rar مرات التحميل :(5)
الحجم :(16.24) KB


أثارت هذه المشاركة إعجاب: YasserKhalil، abdulwahed catran، ali mohamed ali، ابو طيبه، Dreamier، hassona229، noureddine70، مدحت حافظ، خالد الشاعر، محمد أبو عبدو،



look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
  04-03-2021 07:35 صباحاً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36757
الاعجاب : 185
بارك الله فيك أخي العزيز إسلام وجزيت خيراً.

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



look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
  04-03-2021 10:02 صباحاً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1765
الدولة : مصر
الجنس :
الدعوات : 2
قوة السمعة : 9685
الاعجاب : 25
أحسنت استاذ اسلام دالة ممتازة جزاك الله كل خير

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


توقيع :ali mohamed ali


{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى حل أى مشكلة او أستفسار لديك مع إضافة رد بشكره
أو دعوة لمن قدم اليك المساعدة,فالجميع هنا يعمل على مساعدة
الاخرين لوجه الله وان تحتسب له اجر عند الله

look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
  05-03-2021 01:57 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 803
الدولة : مصر
الجنس :
تاريخ الميلاد : 13-9-1980
قوة السمعة : 3951
الاعجاب : 23
بارك الله فيك استاذ اسلام
جعلها الله في ميزان حسناتكم يوم القيامه ان شاء الله

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



look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
  08-03-2021 01:52 مساءً   [4]
معلومات الكاتب ▼
تاريخ الإنضمام : 09-01-2019
رقم العضوية : 10911
المشاركات : 49
الجنس :
تاريخ الميلاد : 1-1-1972
قوة السمعة : 54
الاعجاب : 0
رائع جدا استاذ اسلام

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



look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
  17-03-2021 04:34 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 27-08-2017
رقم العضوية : 247
المشاركات : 202
الجنس :
تاريخ الميلاد : 13-4-1966
قوة السمعة : 613
الاعجاب : 0
بارك الله فيك أستاذي الفاضل وجزاك الله عنا خير الجزاء

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



اضافة رد جديد اضافة موضوع جديد




الكلمات الدلالية
الدالة ، المعرفة ، SplitEA ، الاصدار ، الثانى ،









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

الساعة الآن 02:16 PM