# پایگاه‌های داده > سایر پایگاه‌های داده > Foxpro >  چک کردن صحت کد ملی

## mreza_adeli58

دوستان بنده در تاپیکهای مختلف که مربوط به زبانهای دیگه میشد فرمول تشخیص صحت کد ملی را دیدم ولی متاسفانه نتونستم به فاکس پرو تبدیلش کنم . اگه کسی کد فاکس پرو چک کردن کد ملی را داره بنده رو راهنمایی کنه . ممنون

----------


## ashkan_gorg

اگه شما کدنویسی مربوط به زبان های دیگه رو دارید دراین قسمت قراردهید تا تبدیل به فاکس بشه

----------


## mreza_adeli58

> اگه شما کدنویسی مربوط به زبان های دیگه رو دارید دراین قسمت قراردهید تا تبدیل به فاکس بشه


اینم برنامه و سورسش . ممنون میشم .

----------


## mehran_337

مگه فرمولی داره  ؟ فرمولش چیه

----------


## mreza_adeli58

> مگه فرمولی داره  ؟ فرمولش چیه


تو این برنامه ای بالا گذاشتم فرمولش هست ولی بزبان فاکس نیستش . من هرکاری کردم نتونستم تبدیلش کنم .

----------


## Esikhoob

دوست عزیز ، چطور میتون 200-300 KB کد برنامه ، فقط فرمول چک کردن یک عدد باشد؟؟

----------


## mreza_adeli58

> دوست عزیز ، چطور میتون 200-300 KB کد برنامه ، فقط فرمول چک کردن یک عدد باشد؟؟


هم کد برنامه هست و هم فایل اجرائیش .

----------


## rezaTavak

http://www.irandevelopers.com/fomula...8709251705.htm

اینجا توضیح داده است.

البته به جاوا.

----------


## mreza_adeli58

> http://www.irandevelopers.com/fomula...8709251705.htm
> 
> اینجا توضیح داده است.
> 
> البته به جاوا.


اگه بنده جاوا بلد بودم که تبدیل میکردم !

----------


## kia1349

خوب آقا رضا توی جاوا استاده.ولی تقریبا مفهومه.
به هر جهت اگر کسی بتونه اینکارو بکنه به دوستانی که نیاز دارند و حتی به سایرین کمک بزرگی کرده

----------


## kia1349

خدائیش به بزرگی خودتون ببخشید
هم دلم سوخت هم نخواستم دیگران تو زحمت بیافتند(شوخی)

----------


## kia1349

این هم توضیح فارسی برای دوستان که حوصله سورس خواندن ندارند.توجه کنید که همه کدهای ملی ۱۰ رقمی هستند.
کدهای ملی که همه ارقام آنها مثل هم باشند معتبر نیستند مثل

۰۰۰۰۰۰۰۰۰۰

۱۱۱۱۱۱۱۱۱۱

۲۲۲۲۲۲۲۲۲۲

۳۳۳۳۳۳۳۳۳۳

۴۴۴۴۴۴۴۴۴۴

۵۵۵۵۵۵۵۵۵۵

۶۶۶۶۶۶۶۶۶۶

۷۷۷۷۷۷۷۷۷۷

۸۸۸۸۸۸۸۸۸۸

۹۹۹۹۹۹۹۹۹۹

روش اعتبار سنجی کد ملی :

دهمین رقم شماره ملی را به عنوان A در نظر می گیریم.

یک مقدار B در نظر می گیریم و آن را برابر با =

(اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )

قرار می دهیم.

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

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

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

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

----------

