PDA

View Full Version : تدبیل کد جاوا اسکریپت به کد سی شارپ



reza11_2005
سه شنبه 29 تیر 1395, 08:14 صبح
با سلام

این کد صحت شناسه ملی:
function checkCodeMeli(code)
{

var L=code.length;

if(L<11 || parseInt(code,10)==0) return false;

if(parseInt(code.substr(3,6),10)==0) return false;
var c=parseInt(code.substr(10,1),10);
var d=parseInt(code.substr(9,1),10)+2;
var z=new Array(29,27,23,19,17);
var s=0;
for(var i=0;i<10;i++)
s+=(d+parseInt(code.substr(i,1),10))*z[i%5];
s=s%11;if(s==10) s=0;
return (c==s);

}


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

دلتنگ اسمان
سه شنبه 29 تیر 1395, 10:35 صبح
با سلام
این کد چک کردن کدملی در سی شارپ :

bool IsValidNationalCode(String nationalCode)
{

if (String.IsNullOrEmpty(nationalCode))
{ MessageBox.Show(" کد ملی صحیح نمی باشد"); return false; }

if (nationalCode.Length != 10)
{ MessageBox.Show(" تعداد ارقام کد ملی بیش از 10 رقم نمیتواند باشد"); return false; }

var regex = new Regex(@"\d{10}");

if (!regex.IsMatch(nationalCode))
{ MessageBox.Show(" کد ملی بصورت عددی می باشد"); return false; }

var allDigitEqual =
new[] { "0000000000", "1111111111", "2222222222", "3333333333", "4444444444", "5555555555",
"6666666666", "7777777777", "8888888888", "9999999999" };

if (allDigitEqual.Contains(nationalCode))
{ MessageBox.Show(" کد ملی صحیح نمی باشد"); return false; }

var chArray = nationalCode.ToCharArray();
var num0 = Convert.ToInt32(chArray[0].ToString()) * 10;
var num2 = Convert.ToInt32(chArray[1].ToString()) * 9;
var num3 = Convert.ToInt32(chArray[2].ToString()) * 8;
var num4 = Convert.ToInt32(chArray[3].ToString()) * 7;
var num5 = Convert.ToInt32(chArray[4].ToString()) * 6;
var num6 = Convert.ToInt32(chArray[5].ToString()) * 5;
var num7 = Convert.ToInt32(chArray[6].ToString()) * 4;
var num8 = Convert.ToInt32(chArray[7].ToString()) * 3;
var num9 = Convert.ToInt32(chArray[8].ToString()) * 2;

var a = Convert.ToInt32(chArray[9].ToString());
var b = (((((((num0 + num2) + num3) + num4) + num5) + num6) + num7) + num8) + num9;
var c = b % 11;
return (((c < 2) && (a == c)) || ((c >= 2) && ((11 - c) == a)));

}

در این سایت (http://www.m2h.nl/files/js_to_c.php) میتونید کدهای جاوااسکریپت رو به سی شارپ تبدیل کنید که کد تبدیل شده شما این میشه:

// Converted from UnityScript to C# at http://www.M2H.nl/files/js_to_c.php - by Mike Hergaarden
// Do test the code! You usually need to change a few small bits.

using UnityEngine;
using System.Collections;

public class MYCLASSNAME : MonoBehaviour {

void checkCodeMeli (code){



FIXME_VAR_TYPE L=code.length;



if(L<11 || int.Parse(code,10)==0) return false;



if(int.Parse(code.substr(3,6),10)==0) return false;

FIXME_VAR_TYPE c=int.Parse(code.substr(10,1),10);

FIXME_VAR_TYPE d=int.Parse(code.substr(9,1),10)+2;

FIXME_VAR_TYPE z=new Array(29,27,23,19,17);

FIXME_VAR_TYPE s=0;

for(FIXME_VAR_TYPE i=0;i<10;i++)

s+=(d+int.Parse(code.substr(i,1),10))*z[i%5];

s=s%11;if(s==10) s=0;

return (c==s);



}


}