أكاديمية الصقر للتدريب

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
EM_ACC مجدى يونس-- لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة بحاجة الى كود ترحيل اكسيل اسئله واجابات


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





الدالة المعرفة SplitEA - الإصدار الثانى

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



03-03-2021 09:18 مساء
Eslam Abdullah
مشرف على لغات برمجة آخرى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 5
يتابعهم : 0
يتابعونه : 89
قوة السمعة : 10845
موقعي : زيارة موقعي
عدد الإجابات: 6
 offline 

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


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

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

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

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

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

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

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

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

وقد ظهرت أمام مستخدمى الدالة إحتياجات جديدة فقمت [باصدار نسخة جديدة] لتزيد الدالة من تميزها حيث:
 
١- تم معالجة أخطاء برمجية وتحسين فى سرعة أدائها
 
٢- فى الإصدار الأول عند إستدعاء آخر جزء فقط يجب تكوين عملية حسابية لمعرفة عدد أجزاء النص ولكن!
فى حالة الأسماء المركبة أو زيادة الفواصل بشكل عشوائى وهو ما يحدث غالباً فى إستدعاء بيانات من مصدر خارجى أو تعدد الفواصل بشكل عشوائى
قد يصبح الأمر أشبه بالمستحيل لحسابه تلقائى أو يدوى خصوصاً مع البيانات الضخمة
*فى [الإصدار الثانى] يمكنك بكل سهولة إستدعاء خانة الفاصل بالسالب مثل () لإستدعاء آخر خانة و () لإستدعاء ما قبل آخر خانة وهكذا وصولاً لأول خانة
*وعلى سبيل المثال ذلك يتميز بمرونة تجعلك تقوم بالفرز أو التصفية على أساس آواخر النص العادى أو المركب كالتعامل مع أولة
 
٣- كما يمكنك تسجيل الجزء الأول الخاص ببداية (النص المركب)
ويمكن تسجيل الجزء الثانى الخاص بنهاية (النص المركب)
المميز هنا أنه كلما ظهر نص من الجزء الثانى يُضَم مع الذى قبله مهما بلغ النص المركب تعداده...
 
وأما عن كود الدالة فهو كالتالى
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 مرات التحميل :(12)
الحجم :(16.24) KB


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

04-03-2021 10:02 صباحا
مشاهدة مشاركة منفردة [2]
ali mohamed ali
مشرف على منتدى الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1763
الدولة : مصر
الجنس : ذكر
الدعوات : 2
يتابعهم : 0
يتابعونه : 68
قوة السمعة : 9632
عدد الإجابات: 46
 offline 
look/images/icons/i1.gif الدالة المعرفة SplitEA - الإصدار الثانى
أحسنت استاذ اسلام دالة ممتازة جزاك الله كل خير
توقيع :ali mohamed ali
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى حل أى مشكلة او أستفسار لديك مع إضافة رد بشكره
أو دعوة لمن قدم اليك المساعدة,فالجميع هنا يعمل على مساعدة
 الاخرين لوجه الله وان تحتسب له اجر عند الله

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

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

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





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


 










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

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