PDA

View Full Version : سوال: بررسی کد ملی



m.lajevardi
شنبه 10 فروردین 1392, 12:53 عصر
آیا میتوان صحت کد ملی وارد شده را بررسی کرد؟

20temp
شنبه 10 فروردین 1392, 13:00 عصر
آیا میتوان صحت کد ملی وارد شده را بررسی کرد؟
برای اینکار شما باید بار اطلاعاتی کد ملی رو بدونید مثلا 324 یا 325 و.. اول کد ملی به چه مفهومیه و الی آخر من یک نمونه گذاشتم بدک نیست :




try
{
char[] chArray = this.txt_melicode.Text.ToCharArray();
int[] numArray = new int[chArray.Length];
for (int i = 0; i < chArray.Length; i++)
{
numArray[i] = (int)char.GetNumericValue(chArray[i]);
}
int num2 = numArray[9];

int num3 = ((((((((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);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))))
{
lbl_error.Text = "کد ملی صحیح می باشد";
}
else
{
lbl_error.Text = "کد ملی نامعتبر است";
}
switch (txt_melicode.Text)
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "4444444444":
case "5555555555":
case "6666666666":
case "7777777777":
case "8888888888":
case "9999999999":
lbl_error.Text = "کد ملی صحیح نیست";
break;
}
}
catch (Exception)
{
lbl_error.Text = "لطفا یک عدد 10 رقمی وارد کنید";
}

vira1368
شنبه 10 فروردین 1392, 13:05 عصر
از این لینک هم میتونید استفاده کنید
http://persianit.net/%D8%B3%D9%88%D8%B1%D8%B3-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%B5%D8%AD%D8%AA-%DA%A9%D8%AF-%D9%85%D9%84%DB%8C.html

Yanehsar
شنبه 10 فروردین 1392, 13:31 عصر
سلام
یه جستجو داخل سایت انجام میدادید یه DLL هم دوستان نوشتن که می تونید بدون دردسر از اون استفاده کنید .
http://barnamenevis.org/showthread.php?359435-%DA%A9%D9%84%D8%A7%D8%B3-%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%B3%D9%86%D8%AC%DB%8C-%DA%A9%D8%AF-%D9%85%D9%84%DB%8C&highlight=%DA%A9%D8%AF+%D9%85%D9%84%DB%8C

piroozman
شنبه 10 فروردین 1392, 13:38 عصر
يكي از بهترين روشهاي بررسي داده هاي ورودي توسط كاربران استفاده از عبارات باقاعده يا Regular Expressions مي باشد. با استفاده از دستورات اين زبان تقريبا هر رشته اي رو مي تونيد تست بگيريد و در خصوص صحت يا عدم صحت رشته مورد نظر تصميم گيري كنيد. به خصوص در مورد كد هاي ملي. بنده خودم فقط تعداد 10 رقم رو با عبارات باقاعده تست مي كنم اما مطمئناً ساير جزئيات كد ملي رو هم مي توانيد با استفاده از دستورات عبارات باقاعده تست كنيد. بد نيست كه يه مطالعه اي روي اين مبحث داشته باشيد. مي تونيد از لينك زير استفاده كنيد. اگر مفيد بود تشكر يادتون نره.
مرجع کامل عبارت باقاعده در سکوی دات نت فریمورک همراه با نحوه به كارگيري آن در زبانهاي سي شارپ و بيسيك
(http://pirooz.parsiblog.com/Posts/26/%D9%85%D8%B1%D8%AC%D8%B9+%DA%A9%D8%A7%D9%85%D9%84+ %D8%B9%D8%A8%D8%A7%D8%B1%D8%AA+%D8%A8%D8%A7%D9%82% D8%A7%D8%B9%D8%AF%D9%87+%D8%AF%D8%B1+%D8%B3%DA%A9% D9%88%D9%8A+%D8%AF%D8%A7%D8%AA+%D9%86%D8%AA+%D9%81 %D8%B1%D9%8A%D9%85%D9%88%D8%B1%DA%A9+%D9%87%D9%85% D8%B1%D8%A7%D9%87+%D8%A8%D8%A7+%D9%86%D8%AD%D9%88% D9%87+%D8%A8%D9%87/)

tooraj_azizi_1035
شنبه 10 فروردین 1392, 14:26 عصر
صحت کد ملی منظورتون چیه؟
کد ملی یک عدد 10 رقمی هست. می تونید تبدیل به رشته کنید طولش رو چک کنید.

vira1368
شنبه 10 فروردین 1392, 14:32 عصر
صحت کد ملی منظورتون چیه؟
کد ملی یک عدد 10 رقمی هست. می تونید تبدیل به رشته کنید طولش رو چک کنید.

منظور اینه که واقعا همچین کد ملی وجود داره یا نه فقط یک عدد 10 رقمی هست

csharpdoost
شنبه 10 فروردین 1392, 18:01 عصر
آیا میتوان صحت کد ملی وارد شده را بررسی کرد؟
این لینک رو نگاه کن توسط استاد نصیری نوشته شده :
http://www.dotnettips.info/

esibarnamenevis
شنبه 10 فروردین 1392, 19:57 عصر
سلام دوستان ای کاش اول یه سرچ میزدید بعد میرفتید سراغ ایجاد تاپیک

کد ملی شماره ای است 10 رقمی که از سمت چپ سه رقم کد شهرستان ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده و رقم آخر آن هم یک رقم کنترل است که از روی 9 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 9 رقم سمت چپ رقم کنترل را محاسبه کنیم
ساختار کد ملی
1- برای محاسبه رقم کنترل از روی سایر ارقام ، هر رقم را در موقعیت آن ضرب کرده و حاصل را با هم جمع می کنیم.
2- مجموع بدست آمده از مرحله یک را بر 11 تقسیم می کنیم
3- اگر باقیمانده کمتر از 2 باشد ، رقم کنترل باید برابر باقیمانده باشد در غیر اینصورت رقم کنترل باید برابر یازده منهای باقیمانده باشد
به عنوان مثال 4709450552
باید از سمت چپ یکی یکی اعداد را از 10 به پایین ضرب کنیم البته تا 9 تا عدد یعنی 470945055
40=10*4
63=9*7
0=8*0
63=7*9
24=6*4
25=5*5
0=4*0
15=3*5
10=2*5

خوب حالا باید تمام این حاصلضرب ها رو با هم جمع کنیم
که میشه 240
حالا باید این عدد رو تقسیم بر 11 کنیم البته ما با باقیمانده تقسیم کار داریم
اگر باقیمانده از 2 کوچکتر بود همون عدد میشه رقم آخر کد ملی
اما اگر از 2 بیشتر بود 11 رو منهای باقیمانده میکنیم
در این مثال باقیمانده عدد 9 میشه
2=9-11
پس کد اخر میشه عدد 2 حالا به کد ملی ما نگاه کنید 4709450552
شما هم میتونید از همین روش بفهمید که کد ملی درست وارد شده یا نه


031-139396-9
0*10=0
3*9=27
1*8=8
1*7=7
3*6=18
9*5=45
3*4=12
9*3=27
6*2=12
0+27+9+7+18+45+12+27+12=156
11-2=9