PDA

View Full Version : گفتگو: سورس اعتبارسنجی کد ملی برای اشخاص حقیقی



همـااا
جمعه 21 فروردین 1394, 13:37 عصر
سلام ، من این سورسو با کدهای مبتدی نوشتم و برای سه چهار تا کد ملی هم تستش کردم ،،، و چون مبتدیم قرارش دادم که هم چکش کنین و اگه جایی غلط جواب میده و مشکلی داره بهم اشکالشو بگین اصلاح کنم و هم اینکه مبتدیام بتونن ازش استفاده کنن...
تو نت خوندم بعضی کد ملیا خاصن ولی نتونستم نمونه ای ازونا پیدا کنم و این برنامه رو باهاشون تست کنم !!!

abdullah20
جمعه 21 فروردین 1394, 17:32 عصر
سلام
من سورس شما را تست نکردم ولی این کاملا

همـااا
جمعه 21 فروردین 1394, 18:00 عصر
سلام
من سورس شما را تست نکردم ولی این کاملا

این تاپیکو گذاشتم که اشکالات سورس خودم ( در صورت وجود) دربیاد جانم ،
اون سورسیم که گذاشتی کداشو نگا نکردم یه عدد زدم برا تست که مشکل داشت فرضا بیا 10 تا یک بده بهش ببین چی میشه! اول میگه کدملی صحیح نیس درجا پشت بندش میگه صحیحه!!! یخورده ادیت کنی حله ...

بعدا نوشت : الان یه تست دیگه ام زدم و یه عدد 11 رقمی وارد کردم که باز گفت درسته! اینم یه مشکل !
حالا ایرادای منو بگو :))))))))))

abdullah20
جمعه 21 فروردین 1394, 21:24 عصر
اجازه بدید یه مشکل کوچیک داره

Mofid.m
شنبه 22 فروردین 1394, 03:33 صبح
درود به شما
تو شرط اول متغیر x رو از نوع long بزار


long x;
if (long.TryParse(txtcode.Text, out x) == false)
{
MessageBox.Show("نامعتبر است");
}

asman.abi
شنبه 22 فروردین 1394, 04:34 صبح
این کد کامل صحت کد ملی
کاملا آزمایش شده
برای جلوگیری از اضافه شدن بیشتر از 10 کارکتر در قسمت تنظیمات textbox مربوطه max length را 10 قرار دهید.
نکته: در اینجا شماره ملی در textbox7 قرار دارد که شما می توانید آن را تغییر دهید.

if (textBox7.Text.Length < 10)
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
else
{
if (textBox7.Text == "0000000000" | textBox7.Text == "1111111111" | textBox7.Text == "2222222222" | textBox7.Text == "3333333333" | textBox7.Text == "4444444444" | textBox7.Text == "5555555555" | textBox7.Text == "6666666666" | textBox7.Text == "7777777777" | textBox7.Text == "8888888888" | textBox7.Text == "9999999999")

MessageBox.Show("شماره ملی وارد شده صحیح نمی باشد");
else
{

char[] chArray = this.textBox7.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)))))
{
MessageBox.Show("شماره ملی صحیح می باشد");
}
else
{
MessageBox.Show("شماره ملی نامعتبر است");
}
}
}

همـااا
شنبه 22 فروردین 1394, 04:50 صبح
این کد کامل صحت کد ملی
کاملا آزمایش شده
برای جلوگیری از اضافه شدن بیشتر از 10 کارکتر در قسمت تنظیمات textbox مربوطه max length را 10 قرار دهید.
نکته: در اینجا شماره ملی در textbox7 قرار دارد که شما می توانید آن را تغییر دهید.

if (textBox7.Text.Length < 10)
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
else
{
if (textBox7.Text == "0000000000" | textBox7.Text == "1111111111" | textBox7.Text == "2222222222" | textBox7.Text == "3333333333" | textBox7.Text == "4444444444" | textBox7.Text == "5555555555" | textBox7.Text == "6666666666" | textBox7.Text == "7777777777" | textBox7.Text == "8888888888" | textBox7.Text == "9999999999")

MessageBox.Show("شماره ملی وارد شده صحیح نمی باشد");
else
{

char[] chArray = this.textBox7.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)))))
{
MessageBox.Show("شماره ملی صحیح می باشد");
}
else
{
MessageBox.Show("شماره ملی نامعتبر است");
}
}
}

زحمت کشیدی ولی .........:لبخند::لبخند::لبخند:
من سورس نمیخوام ، این کد همه جای نت هست، اگه میخواستم ورمیداشتم ... (خیلی تکراریه)...
میخواستم مشکل کد خودمو بدونم که فقط یه مشکل لانگ داشت و اونم دوستمون زحمت کشید گزارش داد ...

pesarake
شنبه 22 فروردین 1394, 05:25 صبح
روشتون جالب بود

محمد رضا فاتحی
شنبه 22 فروردین 1394, 10:19 صبح
if (textBox7.Text.Length < 10) MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
else
{
if (textBox7.Text == "0000000000" | textBox7.Text == "1111111111" | textBox7.Text == "2222222222" | textBox7.Text == "3333333333" | textBox7.Text == "4444444444" | textBox7.Text == "5555555555" | textBox7.Text == "6666666666" | textBox7.Text == "7777777777" | textBox7.Text == "8888888888" | textBox7.Text == "9999999999")

MessageBox.Show("شماره ملی وارد شده صحیح نمی باشد");
else
{

char[] chArray = this.textBox7.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)))))
{
MessageBox.Show("شماره ملی صحیح می باشد");
}
else
{
MessageBox.Show("شماره ملی نامعتبر است");
}
}
}
فقط یه نکته
یه بنده خدایی رو آوردن توی تلویزیون کد ملیش 1111111111 بود می گفت هرجا میرم می گن کد ملیت نادرسته حتی وقتی کارت ملی هم نشون می دم میگن سیستم میگه دست ما نیست
احتمالا از همین سورس استفاده می شه

همـااا
شنبه 22 فروردین 1394, 11:18 صبح
فقط یه نکته
یه بنده خدایی رو آوردن توی تلویزیون کد ملیش 1111111111 بود می گفت هرجا میرم می گن کد ملیت نادرسته حتی وقتی کارت ملی هم نشون می دم میگن سیستم میگه دست ما نیست
احتمالا از همین سورس استفاده می شه

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

shahryari
شنبه 22 فروردین 1394, 12:07 عصر
http://www.tabnak.ir/fa/news/132888