السلام عليكــم ورحمـة الله وبركاتــه ،،
ما هي معادلة التأكد من صحة رقم السجل المدني السعودي؟
السلام عليكــم ورحمـة الله وبركاتــه ،،
ما هي معادلة التأكد من صحة رقم السجل المدني السعودي؟
الاخ الفاضل
نرجوا توضيح الطلب
نقول الى الغاليه
أم عهود زهرة الأكسيس بدون منافس
للنجاحات أناس يقدرون معناها ، وللإبداع أناس يحصدونه
لذا نقدّر جهودك وابداعك، فأنتِ أهل للشكر والتقدير ..
فلكِ منا كل الثناء والتقدير
ذكر بعض الأخوة أن لرقم السجل المدني السعودي خوارزمية معينة أي معادلة تمكن بعض البرامج من الـتأكد من صحة إدخال الرقم وقد وجدت برنامجا تعطيه الرقم ويذكر أنه خطأ أو صحيح لكن لم يبين المعادلة ووجدت كود ذكره أحد الأخوة لكن لم أتمكن من الاستفادة منه
وعليكــم السـلام ورحمة الله وبركاتـه
الأخت روان أهلا بك ومرحبا .. استميحك العذر في هذه المداخلة البسيطة !
الأخ شريفي أهلا بك ومرحبا .. أخي الكريم
الحقيقة ماتطلبه ليس معادلة فالمعادلة تكون عادة قانونا حسابيا تستخدم
في استعلام أو ضمن داله لتؤدي حساب معين من العمليات الحسابية المعروفه
أنما هذه دالة تحقق أو وظيفه أو مايطلق عليها برمجيا ( Function )
أنا فهمت مقصدك تماما ( أو أحسب أني فهمته ) أن لديك مربع نص وتريد ادخال
رقم سجلا مدنيا فيه وتريد اختبار هل هو سجلا مدنيا صحيحا أم انه اي رقم عادي
الى هنا والوضع ماشي تمام .. نأتي لمعطيات سؤالك
الحقيقة لا أعرف أي دالة تختبر رقم السجل المدني إالى هذه اللحظه ولكن حسب المعطيات التي
سأسرد بعضا منها وأنتم ستعاونوني على ذلك يمكن أن نبني الوظيفه فبناء الوظيفة سهل لكن الوصول
لجميع المعطيات هو الصعب
على بركة الله
المعطى الاول يقول أن السجل المدني مكون من 10 خانات لايزيد عنها ولاينقص
المعطى الثاني يقول أن الثلاثة أرقام الاولى من السجل المدني تتراوح بين (100) و (119)
اذا كان ماتقدم صحيحا فاخبرني .. وأن هناك إضافه فأضف على المعطيات أنت أو أي عضو
يشاهد الموضوع وبعد ذلك سنبني دالة الاختبار تبعا لمعطيات وخصائص الرقم وفقكم الله
اكسيرالحياة
تم تعديل هذه المشاركة بواسطة اكسيرالحياة في 17 أكتوبر 2009 في 17:16
أخى الحبيب إكسير الحياة
إسمح لى أن أجلس مشاهداً حتى النهاية (لأن الوضوع عندنا فى مصر مختلف .. فلا أستطيع الحكم إن كانت المعطيات صح أم خطأ) ونترك للأخوة من السعودية هذه المهمة.
ولكن لماذا أجلس مشاهداً؟؟؟
أولاً: ستكون هناك الاستفادة المتوقعة من موضوع كهذا خاصة وأنك تتولى دفته.
ثانياً: عند الوصول لبناء الوظيفة سنقوم بإعادة معطياتها على ما هو موجود فى مصر وإنتاج نفس الوظيفة الرائعة بما يتناسب مع كل بلد.
تحياتى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
الإخوة والأخوات: شريفي ، roan27 ، اكسيرالحياة ، محمد ندا
السلام عليكــم ورحمـة الله وبركاتــه ،،
أسعد الله أوقات الجميع بكل خير ومحبة
وعذرا للانقطاع
استميحكم عذرا بمشاركتي وافسحوا لي لأدلو بدلوي [قد أصيب وقد أكون خاطئاً]
ما ذكره الأخ السائل شريفي صحيح إلى حد معلوماتي المتواضعة
فالبرنامج المدرسي (معارف) يقارن الرقم المدخل فإذا كان
أقل من عشرة أرقام أعطى إشار خطأ باللون الأحمر حسب (قاعدة التحقق من الصحة)
أو تنبيها إذا كان الرقم المدخل 10 أرقام (عشوائية) ولا يتلائم مع الأسس المبني عليها البرنامج
حتى لو كان الرقم المدخل مبتدأ بـ 1 أو 2 وهو ذو 10 أرقام
وأود الإفادة بأن السجل المدني الممنوح من إدارة الأحوال المدنية
يبدأ بالرقم ((1)) بالنسبة للموطن
ويبدأ بالرقم ((2)) بالنسبة للوافد
ويبنى رقم السجل المدني ليصل إلى عشرة أرقام
وهناك حالات قليلة تجاوز الرقم إلى ((11)) رقما بدلا من ((10)) خاصة بالوافدين فقط
وعندما أشكل علينا الأمر طلبنا طباعة Print من إدارة الجوازات واتضح ا، الحال صحيح يعني 11 رقما
ولدي زميل في الدعم الفني لبرنامج معارف أكد أن الفريق ينسق بناء برنامج معارف على خوارزمية مستمدة
من وزارة الداخلية إدارة الأحوال المدنية (للمواطن والمقيم)
وبعد مراجعة الرابط الذي ذكره الأخ السائل
أرفع هذا الكود حسب المرجع المذكور للأخ شريفي وهي مشاركة: fahadam
Function ID_Validation(ByVal SEGEL_NO AsString) AsBoolean
Dim i, TOT AsInteger
Dim TEMP, FIN AsString
TOT = 0
For i = 1 To 9
If (i = 1) Or (i = 3) Or (i = 5) Or (i = 7) Or (i = 9) Then
TEMP = (CInt(Mid(SEGEL_NO, i, 1)) * 2).ToString
If Len(TEMP) = 1 Then
TEMP = "0" & (CInt(Mid(SEGEL_NO, i, 1)) * 2).ToString
Else
TEMP = (CInt(Mid(SEGEL_NO, i, 1)) * 2).ToString
EndIf
TOT = TOT + CInt(Mid(TEMP, 1, 1)) + CInt(Mid(TEMP, 2, 1))
Else
TOT = TOT + CInt(Mid(SEGEL_NO, i, 1))
EndIf
Next
IfCStr(TOT).Length = 1 Then
FIN = "0" & TOT
Else
FIN = TOT.ToString
EndIf
ID_Validation = (CInt(Mid(FIN, 2, 1)) = CInt(Mid(SEGEL_NO, 10, 1))) Or (CInt(Mid(SEGEL_NO, 10, 1)) = 10 - CInt(Mid(FIN, 2, 1)))
Return ID_Validation
EndFunction
وتقبلوا تحياتي
أبو محمد
مرحباً أخى أبو محمد .. وعوداً حميداً .. بدون انقطاع إن شاء الله.
وأنا ما زلت أنتظر إكمال التحقق من الرقم على الطريقة السعودية حتى نطبق على الطريقة المصرية.
تحياتى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
السلام عليكــم ورحمـة الله وبركاتــه ،،
على ما يبدو أن هناك معيار ما يمكن التحقق من خلاله من صحة رقم السجل المدني ولست أدري ماهو وللتأكيد على أن هناك معيار أحيلكم إلى الرابط التالي من منتدنا الغالي
السلام عليكــم ورحمـة الله وبركاتــه ،،
بعد اذن الاساتذة الكرام...
الأمر هو ما قال الأستاذ الكريم إكسير حفظه الله
كل ما بيدنا هو معطيات أو مواصفات للرقم المدخل من عدد منازل Digits - أرقام البداية - أرقام النهاية....الخ
أما ان كان المطلوب هل الرقم بعد ذلك سليم او لا طبقاً لالية الترقيم المتبعة بالجهاز المختص بالمملكة فهذا غير متاح لنا
وبالطبع لا يمكن معرفة ان كان الرقم المعطى موجوداً في السجلات أم لا
تم تعديل هذه المشاركة بواسطة ايهاب عثمان في 18 أكتوبر 2009 في 09:53
طبتم واهتديتم :)
===================================
إقرأ معي
رابط متجدد لكتاب أقرؤه فشاركني فيه
======
فضائح الرافضة ومخازيهم حين يكتب عنها أحد خصومهم فهذا شيء متوقع ،فإن كتب عنها أحدهم فهو شيء غير مألوف ، وإن كان الكاتب أحد مراجعهم وأخص خواصهم فهذا شيء متناهي الغرابة ، وإن علمت أن الكاتب قد قتل بعد نشر الكتاب فقد حان وقت قراءة الكتاب
الكتاب :
حسين الموسوي - لله تم للتاريخ ، كشف الأسرار وتبرئة الأئمة الأطهار
اضغط على الصورة لتحميل الكتاب
-----------
كتب سابقة
السلام عليكــم ورحمـة الله وبركاتــه
الاخ الغالي أبو يحيى شرفت الموضوع .. بطبيعة الحال لانستطيع ضبط الموضوع
على مايجب أن يكون في سجلات الاحوال المدنية لأنه لا أتصال .. الا اننا نحاول الوصول
الى خصائص رقم السجل المدني ومن ثم تفصيل مالدينا من بضاعة عليه
الاخ محمد ندا لك في كل موضوع بصمه ولك في كل زاوية أثرا حسنا جزاك الله كل خير
على جم أدبك وتواضع معدنك
الاخ شريفي استفدت كثيرا من الرابط وأرجو ان يكون هذا المثال حلا لما طلبته
الأخ pms حقيقة دالتك الملونه أكثر من رائعة الا انها أتعبتني في التنقيح والتركيب
لكن بكل صراحة ووضوح كانت بمثابة 80% من الحل المقدم لكم أدناه
نأتي للدوال الموجوده بالمقال المرفق ونجدها على النحو التالي
أولا - دالة pms
Public Function ID_Validation(ByVal SEGEL_NO As String) As Boolean TOT = 0 For i = 1 To 9 If (i = 1) Or (i = 3) Or (i = 5) Or (i = 7) Or (i = 9) Then TEMP = (CInt(Mid(SEGEL_NO, i, 1)) * 2) If Len(TEMP) = 1 Then TEMP = "0" & (CInt(Mid(SEGEL_NO, i, 1)) * 2) Else TEMP = (CInt(Mid(SEGEL_NO, i, 1)) * 2) End If TOT = TOT + CInt(Mid(TEMP, 1, 1)) + CInt(Mid(TEMP, 2, 1)) Else TOT = TOT + CInt(Mid(SEGEL_NO, i, 1)) End If Next If CStr(TOT) = 1 Then FIN = "0" & TOT Else FIN = TOT End If ID_Validation = (CInt(Mid(FIN, 2, 1)) = CInt(Mid(SEGEL_NO, 10, 1))) Or (CInt(Mid(SEGEL_NO, 10, 1)) = 10 - CInt(Mid(FIN, 2, 1))) End Function
دالة رائعة وهي مقتبسه من الاسكربت الذي اشار اليه الاخوة وهو مكتوب بـلغة الــ PHP لكن لها عيوب
وتم تنقيحها ووضع الشروط اللازمه للخانات بدالة أخرى هي
Private Function GetDigitCount(inValue As Double) As Double GetDigitCount = Int(Log(inValue) / Log(10)) + 1 End Function
هذه الدالة تختبر طول الرقم اذا كان طوله 10 خانات تجيزه واذا كان أطول أو أقصر لا تجيزه
هذه صورة من المثال
الاخوة الكرام جربوا المثال مع ارقام مدينه فعلية واقعية مثل الرقم الذي ظاهرا في الصوره هو حقيقي
ثم حاولو التبديل بين ارقامه لو رقم واحدا تجد ان المثال لا يجيز الا الارقام الصحيحة
والمثال في المرفقات .. وفوق كل ذي علم عليم .. والسلام
تم تعديل هذه المشاركة بواسطة اكسيرالحياة في 18 أكتوبر 2009 في 22:39
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اود ان اسجل اعجابي لجميع للاساتذه الكبار على تدخلهم اللطيف الذي يبعث بالنفس الطمانئنه بان الجميع يحاول المساعده مهما بلغت في صعوبتها
والطالبه لا تتدخل في امور يكون يتكلم بها عباقره ولكنها تبقى صامته تستمع وتشاهد لمصلحتها في التعلم من مايقال
ولكن عندي نقطه ممكن تكون لها علاقه في طريقة اعطى الارقام في السعوديه وهي
مناطق المملكه الرئيسيه خمس مناطق رئيسيه قد يكون لكل منطقه فونكشن (Function ) معين تبداء به ولكنها في السلسل الاخير من الرقم يكون موحد على مستوى الدوله
والنقطه الثانيه جربت حوالي 180 رقم سجل مدني حتى اعمل عليها معادلات ومنها تقريب السلسل في الارقام ومحاولة الحصول على الفواق وعمل معاينه على الاقرب ومن ثم عمل اختبار للارقام التي تكون في الفوارق بالرابط المرفق (يمكن ماعرف اوصل الفكره كتابياً) عملتها حسابياً ولكنها باءت بالفشل
على كل حال هي محاوله من طالبه تحاول ان تتعلم فقط
واسفه على التدخل
نقول الى الغاليه
أم عهود زهرة الأكسيس بدون منافس
للنجاحات أناس يقدرون معناها ، وللإبداع أناس يحصدونه
لذا نقدّر جهودك وابداعك، فأنتِ أهل للشكر والتقدير ..
فلكِ منا كل الثناء والتقدير
وعليكــم السـلام ورحمة الله وبركاتـه..
الأخ الحبيب اكسيرالحياة
ولجميع الإخوة والأخوات
بداية أشير إلى العبقرية الفذة لمشرفنا المبدع اكسيرالحياة
في إيجاد الدالة الصواب للتحقق من السجل المدني السعودي
وكلي فخر واعتزاز أن يكون لمشاركتي نصيب في حل المعضلة
وفخر أعظم أن أتلقاها وساما من كبير المبرمجين أخي اكسيرالحياة
وأعتذر لك إن كنت أتعبتك في رفع الدالة (ربما أردت فحص دقت النظر عندك لمنحك رخصة القيادة ... هههههـــه أمزح)
في الحقيقة هي من جهد السأل نفسه حين أشار إلى الرابط ودوري في النقل فقط
ويعلم الله كم سررت حين رأيت الحل بهذه العبقرية الفذة وهذا الذكاء
وأعلم أن جهات كثيرة ستستفيد منه وأخص بالذكر المؤسسات التعليمية بالمملكة
كما أن إحالة الأخ شريفي في مشاركته رقم #8 إلى الرابط
تدل على أهمية الموضوع للمساهمات المتعددة فيه ومن طرق مختلفة
فلك الشكر على اهتمامك أخي الكريم اكسير الحياة
وأهنئك على موهبتك وذكائك (رعاك الله وحفظك من كل شر)
اللهم أرفع قدره وزد علمه وحببه إلى خلقك وابسط له في رزقه وأصلح له أهله
طلب صغير أرجو ألا أزعجك فيه وهو الإذن منك في استخدام الدالة المذكورة في برامجي
أبومحمد
الإبداع دائماً حليف استاذي الكبير اكسير الحياة ...
وفقك الله أخي الكريم وجعل ماتقدمه في موازين حسناتك .
(`'•.¸(` '•. ¸ * ¸.•'´)¸.•'´)
«´¨`.¸ أبو رهـــــــف ¸.´¨`»
(¸. •'´(¸.•'´ * `'•.¸)`'•.¸ )
¸.•’’ ’’
( `•.¸
`•.¸
بسم الله الرحمن الرحيم
الحمد لله رب العالمين
والصلاة والسلام على اشرف المرسلين سيدنا ونبينا محمد بن عبد الله وعلى اله وصحبه اجمعين
الى الاستاذ الكبير إكسير الحياة
السلام عليكم ورحمة الله وبركاته
ماشاء الله ... ماشاء الله ... ماشاء الله
تم تجربته على 180 رقم سجل مدني وتمت بفضل الله جميعها برقم صحييح
ماشاء الله ... ماشاء الله ... ماشاء الله
>>>
أنت رائع بماتعنيه هذي الكلمه .. عندما تمر على موضوع وتحب ان تشارك فيه تستجمع كل حواسك وتبذل كل جهدك فيه .. فانت فعلاً انسان رائع ..
.. وعندما يكون ردك على الموضوع يكون بمثابة القنبله التي لاتبقي شي من حولها ..
.. وعندما تخدم من هم بحاجة الخدمه وبدون مقابل فانت الافضل عند الله
فالكثييرون يسعون للأن يكونوا الأفضل وبإمكانهم ذلك , ولكن لا يعرفون كيف ؟؟؟
ولااقول الإ ان يجازيك من لاتنام عينه ويجعل ربي الفردوس الاعلى مسكنك
اختك في الله
ملاحظه تمت كتابة مشاركتي السابقه قبل قراءت ردك
نقول الى الغاليه
أم عهود زهرة الأكسيس بدون منافس
للنجاحات أناس يقدرون معناها ، وللإبداع أناس يحصدونه
لذا نقدّر جهودك وابداعك، فأنتِ أهل للشكر والتقدير ..
فلكِ منا كل الثناء والتقدير
السلام عليكــم ورحمـة الله وبركاتــه ،،
المبدع اكسيرالحياة ..... شكرا
جاري التجربة وسأوافيكم بالنتيجة علماً بأني حين طرحت المسألة كنت أظن أن الصيغة معلومة ومعروفة وما جرى هنا هو استنباط لها وهناك مجال للخطأ وارد.
أخى الكريم شريفى
أرى أن هذه الجملة لا تتناسب مع تم بذله من مجهود للوصول إلى هذه النتيجة.اقتباسوما جرى هنا هو استنباط لها وهناك مجال للخطأ وارد
ولا يوجد فى العالم كود يجزم بصحة الرقم المدنى لا السعودى ولا المصرى لأن الوسيلة الوحيدة للتحقق من صحة الرقم المدنى هى مراجعة مصلحة الأحوال المدنية وفى يدك شهادة ميلاد (غير مزورة) للشخص المستعلم عن رقمه.
وما تم هنا وهو أقصى ما يمكن عمله ... وهو التحقق من أن هذا الرقم المدخل يتبع القواعد المحددة مسبقاً والمعايير الخاصة بتكويد وتكوين للرقم المدنى.
فى المشاركة التالية نتحدث مع الأساتذة عن الرقم القومى المصرى وتكوينه
تحياتى
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 20 أكتوبر 2009 في 00:22
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
السلام عليكــم ورحمـة الله وبركاتــه ،،
المبدع اكسيرالحياة ... شكرا مرة أخرى
ولم أقصد من جملتي السابقة التقليل من المجهودات الرائعة التي قدمها كل من ساهم هنا ، وربما لأننا تعودنا الابداع من هذا المنتدى الرائع فإني اغفلت ثلاثة أرباع الكاس الممتلئة وركزت على ربع الكأس الفارغة ... فأعتذر
وما ذكرته كان مجرد وصف علمي ( إن صح وصفه بذك ) لما جرى وقد أكدتم يا أستاذ محمد ذلك بقولك (ولا يوجد فى العالم كود يجزم )
ولو عدنا لبداية الموضوع لوجدنا أني افترضت أن الصيغة أو المعادلة معلومة وليست سرية وعندنا برنامج (معارف) الصادر عن وزارة التربية والتعليم يكتشف الرقم الصحيح من الرفم الخطأ فهل استنبطه المبرمجون أو أنهم حصلوا عليه من الجهات الرسمية ( هذا إن كان هناك صيغة أو معادلة )
ختاماً : اعتذر لمن بدا له تعليقي تقليلا من المجهود أو تنكرا لأساتذتي في المنتدى الذين ساعدوني كثيرا من وراء الغيب
يا أخى الكريم شريفى
مرحباً بك ...
وطبعاً أنا أعرف أنك لم تقصد التقليل من جهود الأساتذة الذين شاركوا ولكن أحببت أن أشير إلى أن الجملة المكتوبة توحى بذلك.
فأنا مثلك عندما أسأل سؤالاً أكون متلهفاً للحصول على الإجابة التى أريدها بالضبط دون أى تنازل ... ولكن نعرف دائماً أن هناك ممكن وهناك ما هو غير ممكن.
ويمكن أن يكون برنامج معارف الذى ذكرته يستمد هذه الأرقام من الإتصال بشكل ما بقاعدة بيانات الوزارة المعنية ويكون ذلك مسموحاً للجهات الرسمية.
نأتى الآن للرقم القومى المصرى:
الصورة أدناه توضح شرح مفصل لتكوين الرقم القومى المصرى
والصورة توضح أننا بمجرد معرفة تاريخ ميلاد الفرد يمكننا آلياً ملئ المنازل من 8 إلى 14.
وبمعرفة محافظة الميلاد نملأ المنزلين 6 و 7 حيث سنعرف التطبيق الرقمين المقابلين لكل محافظة (يعنى 01 للقاهرة و 02 للأسكندرية و 15 كفر الشيخ وهكذا).
وبمعرفة جنس الشخص (ذكر أو أنثى) نستطيع مراجعة صحة المنزل رقم 2 (حيث كما هو موضح فى الشرح الفردى للذكور والزوجى للإناث.
ويبقى لدينا المنزل رقم واحد .. والمنازل 3 و 4 و 5 وهذه لا أعرف طريقة للتأكد من صحة محتواها.
أنا أعمل الآن على مثال للتوضيح وعذراً إن تأخرت به قليلاً فأنا أحاول الوصول لأرقام كل المحافظات حتى يكون المثال ذو فائدة.
تحياتى
محمد ندا
تحياتى
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
أهلا محمد ندا
الحقيقة الرقم القومي المصري .. فيه شيء من الدقة
والمنطقية بحيث حين تشاهده يوحي لك بشخصية صاحبه
لكن العيب فيه طوله (الكبير ) فقد أصبح رقما فلكيا :lol:
أخى الحبيب إكسير
أهلاً بك .. ومقبولة منك يا عم :)
وعلى فكرة .. لو شفت بعض ما كان مقترح فى مرحلة الدراسة حتى استقر على الرقم (القصير الحالى) .. كان يمكن أن يغمى عليك أو بالكاد ندركك قبل أن تقفز من فوق سطح منزلكم بلحظات :)
تحياتى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
شكراً أخي : اكسير الحياة
وأهنئك على موهبتك وذكائك (رعاك الله وحفظك من كل شر)
اللهم أرفع قدره وزد علمه وحببه إلى خلقك وابسط له في رزقه وأصلح له أهله
سبحان الله و بحمده ، سبحان الله العظيم
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…