سلام
یه dll براتون میزارم که میتونید با اون چک کنید که کد ملی صحیح است یا نه
تشکر یادتون نره
به دردمون خورد
اصلا چیه
ای بدک نبود
عالی بود
سلام
یه dll براتون میزارم که میتونید با اون چک کنید که کد ملی صحیح است یا نه
تشکر یادتون نره
آخرین ویرایش به وسیله atryad : یک شنبه 26 آذر 1391 در 12:57 عصر
بر چه اساسی چک می کنی کد ملی صحیح است یا خیر ؟
من چند وقت پیش الگوریتمش رو یه جایی دیده بودم.ولی گوگل تا دلت بخواد بهت لینک میده....
http://forum.p30world.com/showthread.php?t=295203
Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."
سلام
این هم کلاس چک کردن صحت کد ملی
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Configuration;
using System.Web;
public class Code_meli
{
public bool chek(string meli)
{
try
{
int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a, b;
int sum, mm;
char[] code = new char[12];
if (meli == "1111111111" || meli == "2222222222"||
meli == "3333333333" || meli == "4444444444"||
meli == "5555555555" ||meli == "6666666666" ||
meli == "7777777777" || meli == "8888888888"||
meli == "9999999999" || meli == "0000000000")
return false;
code = meli.ToCharArray();
///////////////////////////////
a1 = Convert.ToInt32(code[0].ToString()) * 10;//سه رقم اول
a2 = Convert.ToInt32(code[1].ToString()) * 9;//
a3 = Convert.ToInt32(code[2].ToString()) * 8;//
//-----------------------
a4 = Convert.ToInt32(code[3].ToString()) * 7;//
a5 = Convert.ToInt32(code[4].ToString()) * 6;//
a6 = Convert.ToInt32(code[5].ToString()) * 5;//شش رقم میانی
a7 = Convert.ToInt32(code[6].ToString()) * 4;//
a8 = Convert.ToInt32(code[7].ToString()) * 3;//
a9 = Convert.ToInt32(code[8].ToString()) * 2;//
//------------------
a10 = Convert.ToInt32(code[9].ToString());//رقم اخر
sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9;
mm = (sum % 11);
if (mm < 2)
if (a10 == mm)
return true;
if (mm >= 2)
if ((11 - mm) == a10)
return true;
return false;
}
catch
{
return false;
}
}
}
آخرین ویرایش به وسیله atryad : دوشنبه 30 شهریور 1388 در 20:07 عصر
به من تازه کار بگید چک کردن صحت کد ملی یعنی چی؟! یعنی قالب کد ملی؟ پس چرا از Regular Expression استفاده نکردید؟!
تشخیص صحت کد ملیامروزه در اکثر نرم افزارهای تولیدی نیاز به استفاده از کد ملی به عنوان یک مشخصه منحصر به فرد برای اطلاعات فردی می باشد.از طرفی متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ورودی در اختیار برنامه نویسان وجود ندارد.
اخیرا با توجه به نیاز خودم به کنترل صحت کد ورودی الگوریتم مربوط به کنترل صحت کد ملی را بدست آوردم و چون مطمئن هستم افراد زیادی هم همین نیاز را دارند روال انجام کار را در این مقال توضیح می دهم
کد ملی شماره ای است 10 رقمی که از سمت چپ سه رقم کد شهرستان ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده و رقم آخر آن هم یک رقم کنترل است که از روی 9 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 9 رقم سمت چپ رقم کنترل را محاسبه کنیم
از آنجایی که درسیستم کد ملی معمولا قبل از کد تعدادی صفر وجود دارد.(رقم اول و رقم دوم از سمت چپ کد ملی ممکن است صفر باشد) و در بسیاری از موارد ممکن است کاربر این صفرها را وارد نکرده باشد و یا نرم افزار این صفرها را ذخیره نکرده باشد بهتر است قبل از هر کاری در صورتی که طول کد بزرگتر مساوی 8 و کمتر از 10 باشد به تعداد لازم (یک تا دو تا صفر) به سمت چپ عدد اضافه کنید. ساختار کد ملی در زیر نشان داده شده است
سلام
اینو ببینید.
بدون نقصه. خودم نوشتم کد ملی رو طبق فرمول سازمان ثبت احوال چک میکنه.
http://www.irp2d.com/codemeli.zip
سلام
اين dll رو چطور بايد استفاده كرد توضيح بديد لطفاً
با سلام
توی مثال تایپیک 1 طریقه استفاده هست
ابتدا dll رو به Referense پروژه اضاف میکنید بعدا هرکجا که میخواین استفاده کنید
به صورت زیر عمل می کنید
Code_meli cc = new Code_meli();
if (cc.chek(textBox1.Text) == true)
MessageBox.Show("کد ملی صحیح می باشد", "تایید", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("کد ملی صحیح نمی باشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
که textbox1 در این مثال دارای مقدار کد ملی می باشد
میتونید به جای dll از کلاس توی تایپیک 4 استفاده کنید
و طریقه استفاده هم شبیه dll است وی ا فقط تابع موجود در کلاس رو به صورت مجزا در هر جا که میخواهین کپی کنید و استفاده کنید
public bool chek(string meli)که فراخونی اون هم به شکل زیر می باشد
{
try
{
int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a, b;
int sum, mm;
char[] code = new char[12];
if (meli == "1111111111" || meli == "2222222222"||
meli == "3333333333" || meli == "4444444444"||
meli == "5555555555" ||meli == "6666666666" ||
meli == "7777777777" || meli == "8888888888"||
meli == "9999999999" || meli == "0000000000")
return false;
code = meli.ToCharArray();
///////////////////////////////
a1 = Convert.ToInt32(code[0].ToString()) * 10;//سه رقم اول
a2 = Convert.ToInt32(code[1].ToString()) * 9;//
a3 = Convert.ToInt32(code[2].ToString()) * 8;//
//-----------------------
a4 = Convert.ToInt32(code[3].ToString()) * 7;//
a5 = Convert.ToInt32(code[4].ToString()) * 6;//
a6 = Convert.ToInt32(code[5].ToString()) * 5;//شش رقم میانی
a7 = Convert.ToInt32(code[6].ToString()) * 4;//
a8 = Convert.ToInt32(code[7].ToString()) * 3;//
a9 = Convert.ToInt32(code[8].ToString()) * 2;//
//------------------
a10 = Convert.ToInt32(code[9].ToString());//رقم اخر
sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9;
mm = (sum % 11);
if (mm < 2)
if (a10 == mm)
return true;
if (mm >= 2)
if ((11 - mm) == a10)
return true;
return false;
}
catch
{
return false;
}
}
if (chek(textBox1.Text) == true)
MessageBox.Show("کد ملی صحیح می باشد", "تایید", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("کد ملی صحیح نمی باشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
سلام اين كد خوبه ولي ايراد داره من امتحانش كردم .اگه اعداد تكراري باشند بازم مي گه درسته !
با سلام
دوستان کسی میتونه بگه چطوری از کد ملی می توان شهر محل تولد را تشخیص داد
البته الگوریتمش را می دونم فقط نمی دونم چطوری توی برنامه بالا ازش استفاده کنم.
ممنون میشم پاسخ بدید.
تکرار در کد ملی مجاز است
این میتونه یک کد ملی باشه
2092090003
2000000010
کد ملی شماره ای است 10 رقمی که از سمت چپ سه رقم کد شهرستان ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده و رقم آخر آن هم یک رقم کنترل است که از روی 9 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 9 رقم سمت چپ رقم کنترل را محاسبه کنیم
در این الگوریتم سه رقم اول
a1 = Convert.ToInt32(code[0].ToString()) * 10;//سه رقم اول a2 = Convert.ToInt32(code[1].ToString()) * 9;//
a3 = Convert.ToInt32(code[2].ToString()) * 8;//
روش اعتبار سنجی کد ملی :
۱-همه کدهای ملی ۱۰ رقمی هستند.
۲-کدهای ملی که همه ارقام آنها مثل هم باشند معتبر نیستند.
روش کار: دهمین رقم شماره ملی را ( از سمت چپ ) به عنوان A در نظر می گیریم.
یک مقدار B در نظر می گیریم و آن را برابر با =
(اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )قرار می دهیم.
مقدار C را برابر با = B – (B/11)*11 قرار می دهیم.
اگر مقدار C برابر با صفر باشد و مقدار A برابر C باشد کد ملی صحیح است.
اگر مقدار C برابر با ۱ باشد و مقدار A برابر با ۱ باشد کد ملی صحیح است.
اگر مقدار C بزرگتر از ۱ باشد و مقدار A برابر با ۱۱ – C باشد کد ملی صحیح است.
دانلود سورس برنامه تشخیص صحت کد ملی