خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


تشخیص صحت کد ملی

تشخیص صحت کد ملی
صحت کد ملی وارد شده یکی از موارد خیلی مهمی است که در بسیاری از برنامه ها تشخیص آن یک ضرورت می باشد و برنامه حتما باید درستی یا نادرستی آن کد ملی را تشخیص دهد. همانطور که اطلاع دارید کد ملی یک عدد 10 رقمی است اما هر عدد 10 رقمی، کد ملی نیست و باید از سلامت آن اطمینان حاصل شود. امروزه از کد ملی در بسیاری از جاهایی که به هر نحوی سر و کار داریم اهمیت دارد. مثلا برای صدور گواهینامه،باز کردن حساب بانکی، استخدام در شرکت ها، پذیرش بیماران در بیمارستان ها و خیلی جاهای دیگری که بهتر از بنده می شناسید کد ملی باید به طور صحیح وارد شود و صرفا وارد کردن یک عدد 10 رقمی دال بر پر کردن فیلد کد ملی نیست. مثلا یک نرم افزار HIS که برای بیمارستان و پذیرش بیماران مورد استفاده قرار می گیرد را تصور کنید، البته ممکن است فیلد کد ملی در این برنامه ستاره دار و ضروری نباشد اما اگر قرار باشد که کد ملی ای در این فیلد وارد شود حتما باید به طور صحیح وارد شود. در این مقاله می خواهیم به صورت کلی نحوه تشخیص آن را در یک برنامه با زبان VB.Net خدمت شما آموزش دهیم. البته فقط چند خط کد است که حتی سورس آن را به همراه برنامه‌ی ساده از لینک زیر می توانید دانلود کنید. فقط توجه داشته باشید که برنامه با Visual Studio 2012 تهیه شده است و شما هم باید این ورژن و یا بالاتر آن را در سیستم نصب داشته باشید.

نرم افزار سامانه مودیان راهکار



دانلود سورس تشخیص صحت کد ملی

و اگر هم تمایلی به دانلود برنامه ندارید می توانید عینا همان کدها را در قسمت پایین کپی کنید و از آن استفاده نمایید.

Try
If txtNationalID.Text = String.Empty Then Exit Sub

Dim chArray As Char() = Me.txtNationalID.Text.ToCharArray()
Dim numArray As Integer() = New Integer(chArray.Length - 1) {}
For i As Integer = 0 To chArray.Length - 1
numArray(i) = CInt(Math.Truncate(Char.GetNumericValue(chArray(i))))
Next

Dim num2 As Integer = numArray(9)
Select Case Me.txtNationalID.Text
Case "0000000000", "1111111111", "22222222222", "33333333333", "4444444444", "5555555555", _
"6666666666", "7777777777", "8888888888", "9999999999"
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد")
txtNationalID.Focus()
Exit Sub
Exit Select
End Select

Dim num3 As Integer = ((((((((numArray(0) * 10) + (numArray(1) * 9)) + (numArray(2) * 8)) + (numArray(3) * 7)) + (numArray(4) * 6)) + (numArray(5) * 5)) + (numArray(6) * 4)) + (numArray(7) * 3)) + (numArray(8) * 2)
Dim num4 As Integer = num3 - ((num3 \ 11) * 11)
If (((num4 = 0) AndAlso (num2 = num4)) OrElse ((num4 = 1) AndAlso (num2 = 1))) OrElse ((num4 > 1) AndAlso (num2 = Math.Abs(CInt(num4 - 11)))) Then
MessageBox.Show("کد ملی وارد شده صحیح می باشد")
Else
MessageBox.Show("کد ملی نامعتبر است")
txtNationalID.Focus()
Exit Sub

End If
Catch generatedExceptionName As Exception
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید")
txtNationalID.Focus()
Exit Sub
End Try



کد ملی وارد شده نباید شامل ده تا 1 و 2 و غیره.. باشد. اگر به قسمت اول شرط دقت کنید، طوری کد نوشته شده که این اعداد در زمان وارد کردن کد ملی مورد تایید قرار نگیرند هر چند که با فرمول کد ملی که در خط پایین تر آن درج شده، تطابق دارند. چون همچین کد ملی هایی برای هیچ کس صادر نشده است.
در این برنامه یک TextBox یا جعبه متن قرار دادیم که با اجرای برنامه باید یک کد ملی را در آن وارد کنید چنانچه کد ملی وارد شده با فرمول تطبیق داشته باشد پیغام صحیح بودن و در غیر اینصورت پیغام اشتباه بودن کد ملی نمایش داده می شود. همچنین اگر تعداد ارقام کمتر از 10 رقم باشد پیغام اجباری بودن 10 رقمی کد ملی نمایش داده می شود و به اطلاع می دهد که کد ملی 10 رقمی نیست.
فرمول همین چیزیست که در این مقاله مشاهده می کنید و اگر در زبان برنامه نویسی غیر از VB.net کد نویسی می کنید کافیست این کدها را به آن زبان Convert کنید و از آن استفاده کنید.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز