نمایش نتایج 1 تا 16 از 16

نام تاپیک: فرمول تشخيص صحت كد ملي

  1. #1

    Wink فرمول تشخيص صحت كد ملي

    سلام

    با استفاده از برنامه زير مي توانيد تشخيص دهيد كاربر كد ملي صحيحي را وارد نموده يا خير

    سازمان ثبت احوال کشور در راستای ارائه کارت ملی روشی را برای تولید کدهای ملی استفاده نموده است که با استفاده از آنها می توانیم کدهایی داشته باشیم که از امنیت بالایی برخوردار باشند و همچنین قابلیت تقلب نداشته باشند.

    همه کدهای ملی ۱۰ رقمی هستند.

    کدهای ملی که همه ارقام آنها مثل هم باشند معتبر نیستند مثل

    ۰۰۰۰۰۰۰۰۰۰
    ۱۱۱۱۱۱۱۱۱۱
    ۲۲۲۲۲۲۲۲۲۲
    ۳۳۳۳۳۳۳۳۳۳
    ۴۴۴۴۴۴۴۴۴۴
    ۵۵۵۵۵۵۵۵۵۵
    ۶۶۶۶۶۶۶۶۶۶
    ۷۷۷۷۷۷۷۷۷۷
    ۸۸۸۸۸۸۸۸۸۸
    ۹۹۹۹۹۹۹۹۹۹

    روش اعتبار سنجی کد ملی :
    دهمین رقم شماره ملی را ( از سمت چپ ) به عنوان A در نظر می گیریم.

    یک مقدار B در نظر می گیریم و آن را برابر با =
    (اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )
    قرار می دهیم.

    مقدار C را برابر با = B – (B/11)*11 قرار می دهیم.

    اگر مقدار C برابر با صفر باشد و مقدار A برابر C باشد کد ملی صحیح است.
    اگر مقدار C برابر با ۱ باشد و مقدار A برابر با ۱ باشد کد ملی صحیح است.
    اگر مقدار C بزرگتر از ۱ باشد و مقدار A برابر با ۱۱ – C باشد کد ملی صحیح است.


    Function CheckMelliCode(Melli_Code As String) As Boolean

    Dim c@, n@, r@

    If Len(Melli_Code) < 10 Then Melli_Code = String(10 - Len(Melli_Code), "0") & Melli_Code

    If Melli_Code = "0000000000" Or _
    Melli_Code = "1111111111" Or _
    Melli_Code = "2222222222" Or _
    Melli_Code = "3333333333" Or _
    Melli_Code = "4444444444" Or _
    Melli_Code = "5555555555" Or _
    Melli_Code = "6666666666" Or _
    Melli_Code = "7777777777" Or _
    Melli_Code = "8888888888" Or _
    Melli_Code = "9999999999" Then

    Else

    c = Val(Mid$(Melli_Code, 10, 1))

    n = Val(Mid$(Melli_Code, 1, 1)) * 10 + _
    Val(Mid$(Melli_Code, 2, 1)) * 9 + _
    Val(Mid$(Melli_Code, 3, 1)) * 8 + _
    Val(Mid$(Melli_Code, 4, 1)) * 7 + _
    Val(Mid$(Melli_Code, 5, 1)) * 6 + _
    Val(Mid$(Melli_Code, 6, 1)) * 5 + _
    Val(Mid$(Melli_Code, 7, 1)) * 4 + _
    Val(Mid$(Melli_Code, 8, 1)) * 3 + _
    Val(Mid$(Melli_Code, 9, 1)) * 2

    r = n - Int(n / 11) * 11

    If (r = 0 And r = c) Or (r = 1 And c = 1) Or (r > 1 And c = 11 - r) Then CheckMelliCode = True

    End If

    End Function

    Private Sub Command1_Click()

    MsgBox CheckMelliCode("4591246361")

    End Sub
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  2. #2
    کاربر دائمی آواتار majjjj
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    شیراز
    پست
    1,158

    نقل قول: فرمول تشخيص صحت كد ملي

    سلام حامد جان
    ایا این فرمول یک فرمول تعریف شده توسط ثبت احوال هست یا اینکه یک فرمول کلی برای شماره های 10 رقمی هست چون من هم یکسری بارکد 10 رقمی دارم که میخواهم اعتبار اونهارو ازمایش کنم که فرمولشون رو ندارم

  3. #3

    Wink نقل قول: فرمول تشخيص صحت كد ملي

    نقل قول نوشته شده توسط majjjj مشاهده تاپیک
    سلام حامد جان
    ایا این فرمول یک فرمول تعریف شده توسط ثبت احوال هست یا اینکه یک فرمول کلی برای شماره های 10 رقمی هست چون من هم یکسری بارکد 10 رقمی دارم که میخواهم اعتبار اونهارو ازمایش کنم که فرمولشون رو ندارم
    سلام

    كد ملي با باركد فرق داره، 3 عدد اول نشانه كد شهر، 6 عدد بعدي كد شخص و عدد آخر رقم كنترل هست و اين فرمول فقط براي كد ملي هست
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  4. #4
    کاربر جدید آواتار Hamed Hosseini
    تاریخ عضویت
    مهر 1387
    محل زندگی
    رشت
    سن
    37
    پست
    24

    نقل قول: فرمول تشخيص صحت كد ملي

    خيلي عالي بود. برنامه ي كامپال شدش رو هم داريد؟

  5. #5

    نقل قول: فرمول تشخيص صحت كد ملي

    سلام

    اين سورس تابع هست
    كامپايلش كه ديگه كاري نداره
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  6. #6
    کاربر دائمی آواتار soheilbehro
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اردبیل
    سن
    34
    پست
    232

    نقل قول: فرمول تشخيص صحت كد ملي

    می شه برنامه شو بگذاری من سر در نمی آورم لطفا

  7. #7

    Wink نقل قول: فرمول تشخيص صحت كد ملي

    نقل قول نوشته شده توسط soheilbehro مشاهده تاپیک
    می شه برنامه شو بگذاری من سر در نمی آورم لطفا
    سلام

    برنامش تو پست اول هست
    اون تابع رو به برنامت اضافه كن و فراخواني كن، به همين سادگي
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  8. #8
    کاربر تازه وارد آواتار iranian-pc
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    نصف جهان
    پست
    79

    Talking نقل قول: فرمول تشخيص صحت كد ملي

    این هم لینک برنامه تشخیص صحت کد ملی و شماره شناسنامه های 10 رقمی میباشد

    این برنامه کامپایل شده و با گرفیک خوب است


  9. #9
    کاربر دائمی آواتار soheilbehro
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اردبیل
    سن
    34
    پست
    232

    نقل قول: فرمول تشخيص صحت كد ملي

    این هم برنامه کمپایل شده همراه با سورس
    فایل های ضمیمه فایل های ضمیمه

  10. #10

    نقل قول: فرمول تشخیص صحت کد ملی

    اینم کد جاوا اسکريپت
     function checkMelliCode(varmellicode)
    {
    var meli_code;
    meli_code=varmellicode.value;
    if (meli_code.length == 10)
    {
    if(meli_code==’1111111111′ ||
    meli_code==’0000000000′ ||
    meli_code==’2222222222′ ||
    meli_code==’3333333333′ ||
    meli_code==’4444444444′ ||
    meli_code==’5555555555′ ||
    meli_code==’6666666666′ ||
    meli_code==’7777777777′ ||
    meli_code==’8888888888′ ||
    meli_code==’9999999999′ )
    {
    alert(”کد ملی صحیح نمی باشد”);
    objcode.focus();
    return false;
    }
    c = parseInt(meli_code.charAt(9));
    n = parseInt(meli_code.charAt(0))*10 +
    parseInt(meli_code.charAt(1))*9 +
    parseInt(meli_code.charAt(2))*8 +
    parseInt(meli_code.charAt(3))*7 +
    parseInt(meli_code.charAt(4))*6 +
    parseInt(meli_code.charAt(5))*5 +
    parseInt(meli_code.charAt(6))*4 +
    parseInt(meli_code.charAt(7))*3 +
    parseInt(meli_code.charAt(8))*2;
    r = n - parseInt(n/11)*11;
    if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
    {
    return true;
    }
    else
    {
    alert(”کد ملی صحیح نمی باشد”);
    objcode.focus();
    return true;
    }
    }
    else
    {
    return true;
    }

    آخرین ویرایش به وسیله vbhamed : پنج شنبه 14 شهریور 1392 در 10:00 صبح

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    پست
    68
    نقل قول نوشته شده توسط vbhamed مشاهده تاپیک
    سلام

    كد ملي با باركد فرق داره، 3 عدد اول نشانه كد شهر، 6 عدد بعدي كد شخص و عدد آخر رقم كنترل هست و اين فرمول فقط براي كد ملي هست
    سلام
    میشه راهنمائی کنید از کجا می تونیم جدول کامل لیست شهر ها و کد های معادل رو استخراج کنیم ؟(جهت تبدیل کد به نام شهر)
    آخرین ویرایش به وسیله vbhamed : شنبه 23 فروردین 1393 در 00:01 صبح

  12. #12

    نقل قول: فرمول تشخيص صحت كد ملي

    چه جوري ميشه كد ملي اشخاص حقوقي رو چك كرد؟
    آخه من يه برنامه نوشتم كه بر اساس شناسه اشخاص حقوقي (كد ملي) اطلاعات رو ذخيره مي كنه. فقط مي دونم بايد 11 رقمي باشه

  13. #13
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: فرمول تشخيص صحت كد ملي

    معادل C#‎ رو نداری ؟

  14. #14

    نقل قول: فرمول تشخيص صحت كد ملي

    نقل قول نوشته شده توسط dev-dev-dev مشاهده تاپیک
    معادل C#‎‎ رو نداری ؟
    سلام عليکم
    در تالار سي شارپ سوالتان را بپرسيد(البته قبلش جستجو کنيد فکر کنم کد سي شارپ هم باشه)
    به تاريخ پست ها هم نگاهي بندازيد.آخرين پست اين تاپيک دو سال قبل ايجاد شده!



    موفق باشيد

  15. #15

    نقل قول: فرمول تشخيص صحت كد ملي

    لينک زير رو ببينيد:
    https://barnamenevis.org/showthread.p...85%D9%84%D9%8A

  16. #16

    نقل قول: فرمول تشخيص صحت كد ملي

    Private Sub Command1_Click()
    Dim A As Integer
    Dim num As Long
    Dim N As Long
    Dim C As Integer
    Dim L As Integer
    A = Right(Text1.Text, 1) 'Çæáíä ÚÏÏ ÇÒ ÓãÊ 
    num = Left(Text1.Text, 9)
    L = 2
    For I = 1 To 9
    If Len(Text1.Text) < 8 Then
    A = MsgBox("National code numbers must be at least 8 digits", , "Error in entering the national code")
    End If
    If Text1.Text = "1111111111" Or Text1.Text = "2222222222" Or Text1.Text = "3333333333" Or Text1.Text = "4444444444" Or Text1.Text = "5555555555" Or Text1.Text = "6666666666" Or Text1.Text = "7777777777" Or Text1.Text = "8888888888" Or Text1.Text = "9999999999" Then
    A = MsgBox("Error in entering the national code", , "worning")
    End If
    If Text1.Text = "1111111111" Or Text1.Text = "2222222222" Or Text1.Text = "3333333333" Or Text1.Text = "4444444444" Or Text1.Text = "5555555555" Or Text1.Text = "6666666666" Or Text1.Text = "7777777777" Or Text1.Text = "8888888888" Or Text1.Text = "9999999999" Then Exit For

    If Len(Text1.Text) < 8 Then Exit For
    N = num Mod 10
    num = num \ 10
    Z = N * L
    Sum = Sum + Z
    L = L + 1
    Next
    C = Sum Mod 11
    If C < 2 And A = C Or C >= 2 And A = 11 - C Then Label1.Caption = "National code is correct" Else Label1.Caption = "National code is wrong"

    End Sub

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •