Hawiii قام بنشر يناير 15, 2021 قام بنشر يناير 15, 2021 في ٣/١/٢٠٢١ at 10:00, Hawiii said: نوعية الأسماء تختلف من بلد إلى بلد ، لدرجة صعوية حصرها ، نعم لو كان المطلوب للسعودية فالعملية ستسهل لأن هناك تشديد في التسمية ومنع الأسماء المركبة وأمور أخرى. أرى من اقترح بعمل أربع خانات ثم تجميعها أفضل ولا مانع من حفظ الإسم بأربع حقول الأول الثاني الثالث الأخير. فيه طريقة استخدمها أنا أحيانا لجمع عدة قيم ولتفكيكها أيضا بالشكل التالي: أحمد|محمد|عبدالله|الشاكر وسنعرف بالضم أو التفكيك إذا أحدها ناقص أو ترتيبها: فلو اسم الجد غير متوفر سيكون النص كالتالي: أحمد|محمد||الشاكر وهكذا. في الاقتباس حل التجميع والتخزين وأقترح في الكتابة للأسماء المركبة استخدام الشرطة السفلى إن صح التعبير "_" كـ : محمد_علي ، بو_سعد .. وهكذا وسيمنع كتابة المسافة وتحويلها مباشرة إلى (أندر سكور) وعند التفكيك تحول إلى مسافة. هكذا يخزن الاسم في الجدول : أبو_الوليد|محمد_علي|صالح|الشاكر وفي العرض بعد المعالجة سيكون : أبو الوليد محمد علي صالح الشاكر وإذا لا تهمكم مساحة التخزين فاحفظوها منفصلة كما الإدخال وارتاحوا من مشاكل التجميع والتفكيك.
أبو عبدالله الحلوانى قام بنشر يناير 15, 2021 الكاتب قام بنشر يناير 15, 2021 9 ساعات مضت, sandanet said: استاذي العزيز ابو عبدالله ماتفضلت به ليس هو الحل الذي نتطلع للوصول اليه كمبرمجين أولا- وقبل كل شئ أنت تعلم أني أحب المزاح فلا يكن في صدرك حرج من ردي السابق (دائما أمزح وأورط نفسي ثم أضطر للاعتذار ولكن يعلم الله أني لا أقصد سوي رسم البسمة علي الوجوه هكذا ) ثانيا- 9 ساعات مضت, sandanet said: فأنت لن تستطيع حصر جميع لواحق الاسماء المركبة في الجدول حتى وان كان الجدول لديك يحتوي على كمية كبيرة من لواحق الاسماء فسوف يصادفك اسم مركب لاحقته غير مدرجة مسبقاً نعم ولا شك كلام حضرتك صحيح 100% ولذلك كان وجود الجدول للملئ من قبل المستخدم لما يستجد من لواحق غير موجود بالجدول مسبقا - ثم ان اللواحق في الاسماء في الغالب الأعم لن تتجاوز ما هو مشهور كـ ( عبد ) ويلحقها كل مضاف اليها فلن نضطر لاضافة الملحق بها وانما كلمة عبد فقط وينطبق الكلام كذلك علي (أبو - أم - بو ) طبعا مع مراعاة كتابة هذه الكلمات بأشكالها المتوقعة من اضافة الهمزات واهمالها أما ما هو غير مشهور من لواحق فلن يكون كثير وحدوث مشكلة بسببه ستكون نادرة نوعا ما! مما سيسهل حصره واماكنية اضافته بعد الي جدول اللواحق أما عن وجود طريقة منطقية تحكم تلك اللواحق الغير معلومة (غير وجود هذا الجدول) فلا سبيل لي بايجادها - ويبدو أن نقاش حضرتك سيتفتق عن وجود حل عبقري يكون مثالا يحتذا به بعد فننتظر ابداعاتكم ان شاء الله ولو حتي بالتلميح الي الفكرة. ولعل الاستاذ جعفر حينما ذكر أن بعض الاسماء ستحتاج الي معاجة خاصة - كان ينوي لتقديم فكرة ما، لتلك المعالجة الخاصة ولكني تعجلت النتائج. أشكر لكم سعة صدركم وبانتظار ابداعتكم
أبو عبدالله الحلوانى قام بنشر يناير 15, 2021 الكاتب قام بنشر يناير 15, 2021 7 ساعات مضت, Hawiii said: وإذا لا تهمكم مساحة التخزين فاحفظوها منفصلة كما الإدخال وارتاحوا من مشاكل التجميع والتفكيك. شكرا لك كان هذا اقتراح أستاذنا أبو خليل من البداية وهو طبعا ولا شك أفضل الحلول ولكن كان هذا سيؤدي الي تعديلات جوهرية كثيرة ولا يسعني الوقت لاجراءها بالوقت الحالي. وكل ما كنت في حاجة اليه هو دالة تختبر ان الاسم مكتمل ام لا وقد تمت الفائدة بايجادها والحمد لله واشكر لك مرورك.
Hawiii قام بنشر يناير 15, 2021 قام بنشر يناير 15, 2021 إذن بما أن الفائدة تمت والحمد لله فليغلق هذا الموضوع ، وإذا أتي حل عبقري فليطلب إعادة فتحه وإضافة الحل. تحياتي للجميع.
sandanet قام بنشر يناير 15, 2021 قام بنشر يناير 15, 2021 2 ساعات مضت, أبو عبدالله الحلوانى said: قبل كل شئ أنت تعلم أني أحب المزاح فلا يكن في صدرك حرج من ردي السابق (دائما أمزح وأورط نفسي ثم أضطر للاعتذار ولكن يعلم الله أني لا أقصد سوي رسم البسمة علي الوجوه هكذا اخي العزيز أبو عبدالله في الحقيقة انا ابحث عن النتيجة النهائية المرضية كمبرمج .. والنقاش العلمي و المنطقي واحتمالات حدوث الصح والخطأ في اي فكرة يتم طرحها هي هدفي ولست من ذلك النوع الذي يلتفت للردود ويقيمها فيما اذا كانت قاسية او جارحة او مازحة من الاعضاء الكرام فنقاشنا علمي بحت وافكارنا تحتمل الصح والخطأ وما يهمنا دائما هو النتيجة الافضل ..اليس كذلك؟ بالنسبة لي لم ولن يكن في صدري حرج من اي رد منك او من اي شخص آخر مالم يكن نقاشنا خارج إطار العلم فلا داعي للإعتذار . 2 ساعات مضت, أبو عبدالله الحلوانى said: ثم ان اللواحق في الاسماء في الغالب الأعم لن تتجاوز ما هو مشهور كـ ( عبد ) ويلحقها كل مضاف اليها فلن نضطر لاضافة الملحق بها وانما كلمة عبد فقط وينطبق الكلام كذلك علي (أبو - أم - بو ) طبعا مع مراعاة كتابة هذه الكلمات بأشكالها المتوقعة من اضافة الهمزات واهمالها نعم كلامك صحيح يمكن حصر اغلب اللواحق المحلية والمشهورة بنسبة كبيرة كما تفضلت انت .. لكننا دائماً نتطلع بأن تكون الطريقة أكثر شمولية خصوصا لو فكرت في تسويق برنامجك على نطاق دولي .. في الواقع كنت ارغب بعمل طريقة ما تضيف اللاحقة غير المسجلة مسبقاً الى جدول اللواحق تلقائياً ومن ثم حفظ الاسم الرباعي بالشكل الصحيح في جدول الاسماء وقد قمت بالفعل بعملها لكني وجدت مشكلة ظهور اللاحقة في منتصف الاسم او في بدايته مما سبب لي خلل في استخراج تلك اللاحقة وخلل في تقسيم الاسم الى ربع اجزاء وهذا ما أشرت به إليك في سؤالي السابق "لكن ماذا لو اتى الاسم "بو سالم" في المنتصف اي الاسم الثاني او الثالث؟" والان بعد التفحيص والتمحيص ومناقشة الافكار ووالخ تبين لي ان افضل واسهل حل هو اجبار المستخدم على ادخال الاسم الرباعي موزع على اربع خانات ومن ثم تجميعها وحفظها بالشكل الصحيح .. بذلك نتلافى الاخطاء الوارد حدوثها بشكل نهائي تحياتي
أبو عبدالله الحلوانى قام بنشر يناير 15, 2021 الكاتب قام بنشر يناير 15, 2021 45 دقائق مضت, sandanet said: وما يهمنا دائما هو النتيجة الافضل ..اليس كذلك؟ بلي ولا شك - وجزاكم الله خيرا 48 دقائق مضت, sandanet said: في الواقع كنت ارغب بعمل طريقة ما تضيف اللاحقة غير المسجلة مسبقاً الى جدول اللواحق تلقائياً ولكن كيف سيعرف البرنامج أن هذه لاحقة أم لا هذا هو السؤال؟ أما عن اضافتها بشكل تلقائي فهذا سهل ان شاء الله في ١٤/١/٢٠٢١ at 06:52, محمد أبوعبدالله said: هل جربت ادخال اسماء مكررة مثل رجاءا جرب هذا التعديل Test Four Name Sand.mdb
sandanet قام بنشر يناير 15, 2021 قام بنشر يناير 15, 2021 3 ساعات مضت, أبو عبدالله الحلوانى said: لكن كيف سيعرف البرنامج أن هذه لاحقة أم لا هذا هو السؤال؟ كنت قد استخدمت الدالة التالية التي تعمل على استخراج الفرق بين جملتين Function WORDDIF(rngA As String, rngB As String) As String On Error GoTo Err ' to test the function, press ctrl+G then paste this line of code--> ?WORDDIF("عبد الرحيم بن سلمان عبد الله بو سالم", "عبد الرحيم بن سلمان عبد الله سالم") Dim WordsA As Variant, WordsB As Variant Dim ndxA As Long, ndxB As Long, strTemp As String WordsA = Split(rngA, " ") WordsB = Split(rngB, " ") For ndxB = LBound(WordsB) To UBound(WordsB) For ndxA = LBound(WordsA) To UBound(WordsA) If StrComp(WordsA(ndxA), WordsB(ndxB), vbTextCompare) = 0 Then WordsA(ndxA) = vbNullString Exit For End If Next ndxA Next ndxB For ndxA = LBound(WordsA) To UBound(WordsA) If WordsA(ndxA) <> vbNullString Then strTemp = strTemp & WordsA(ndxA) & " " 'strTemp = strTemp & IIf(WordsA(ndxA) <> vbNullString, WordsA(ndxA), "-") & " " Next ndxA WORDDIF = Trim(strTemp) Exit Function Err: If Err.Number <> 0 Then MsgBox Err.Number & " - " & Err.Description End If End Function قمت باستدعاؤها كالتالي If Me.txtFullName.Text <> fullName() Then txt = WORDDIF([Text0], fullName()) وكانت النتيجة ممتازة لكن للأسف عندما تكون اللاحقة فقط في الاسم الرابع 1
أبو عبدالله الحلوانى قام بنشر يناير 18, 2021 الكاتب قام بنشر يناير 18, 2021 في ١٥/١/٢٠٢١ at 20:53, sandanet said: وكانت النتيجة ممتازة لكن للأسف عندما تكون اللاحقة فقط في الاسم الرابع أعتقد أنك فكرت في قياس طول الجملة هل هذا صحيح؟! اذا نحتاج الي تقطيع الجملة الي أجزاء وقياس طول كل جزء - سأحاول معك في هذا ان شاء الله عندما أجد الوقت الكافي.
sandanet قام بنشر يناير 19, 2021 قام بنشر يناير 19, 2021 16 ساعات مضت, أبو عبدالله الحلوانى said: أعتقد أنك فكرت في قياس طول الجملة هل هذا صحيح؟! اذا نحتاج الي تقطيع الجملة الي أجزاء وقياس طول كل جزء - سأحاول معك في هذا ان شاء الله عندما أجد الوقت الكافي فكرة الدالة هي مقارنة الاسم المكتوب مع الاسم الذي يتم تجزئته باستخدام مثال الاستاذ ابو خليل واباجودى .. وكما اسلفت النتيجة كانت جيدة في حال كان الاسم يحتوي على لاحقة في الاسم الرابع غير مدرجة في الجدول .. تقوم الدالة باستخراج تلك اللاحقة فقط .. لكن لو جاءت اللاحقة في الاسم الاول او الثاني او الثالث وهي غير موجودة في الجدول فمثالكم ومثال الاخ اباجودى تظهر الاسم المقطع بشكل غير صحيح وهذا يؤدي الى عدم مقدرة الدالة السابقة من اظهار اللاحقة الصحيحة. وفي الاخير فضلت استخدام طريقة اجبار المستخدم على مليء اربع خانات ومن ثم تجميع الاسم تحياتي 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.