مشروع استخراج بيانات الرقم القومى - amonem - 25-07-19
السلام عليكم ورحمة الله تعالى وبركاته
اعضاء المنتدى الكرام
كل عام وانت جميعا بخير
مرفق ملف لاستخراج البيانات من الرقم القومى
يعمل جيدا دون اى اخطاء بلغه VB.net
هل من الممكن ننفيذ هذا المشروع بلغه السي شارب
RE: مشروع استخراج بيانات الرقم القومى - سعود - 25-07-19
وعليكم السلام ورحمة الله وبركاته
اخي الكريم اسمح لي بهذه الكلمات وان لم تعجبك لاترد .... فاحذفها مباشرة لاني لا احب ان ازعج احد لكني احب ابداء راي ارى فيه منفعة .
افتح صفحة لاحدى مواقع التحويل من vb to csharp واضف لمشروع جديد الكلاسات والموديولات والفورمات واحدة تلو الاخرى بعد اتمام كل كلاس انتقل للاخر.
وابدا بالبحث عن vb to c# converter
عند التوقف عند كل خطوة اذكر تفاصيل تلك الخطوة .
لان عدم ذكر التفاصيل سنعود بك الى الخطوة الاولى وبهذا لن تحصل على المطلوب بشكل سريع.
أرجو والله ان لا تنزعج مما كتبته الان.
والسلام عليكم ورحمة الله وبركاته
RE: مشروع استخراج بيانات الرقم القومى - amonem - 25-07-19
(25-07-19, 09:24 PM)سعود كتب : وعليكم السلام ورحمة الله وبركاته
اخي الكريم اسمح لي بهذه الكلمات وان لم تعجبك لاترد .... فاحذفها مباشرة لاني لا احب ان ازعج احد لكني احب ابداء راي ارى فيه منفعة .
افتح صفحة لاحدى مواقع التحويل من vb to csharp واضف لمشروع جديد الكلاسات والموديولات والفورمات واحدة تلو الاخرى بعد اتمام كل كلاس انتقل للاخر.
وابدا بالبحث عن vb to c# converter
عند التوقف عند كل خطوة اذكر تفاصيل تلك الخطوة .
لان عدم ذكر التفاصيل سنعود بك الى الخطوة الاولى وبهذا لن تحصل على المطلوب بشكل سريع.
أرجو والله ان لا تنزعج مما كتبته الان.
والسلام عليكم ورحمة الله وبركاته
مافيش ازعاج ولا حاجه استاذي الفاضل
لو فيه رابط لموقع يناسب ما تقوله ارجو ارفاقه
وشكرا ليك
RE: مشروع استخراج بيانات الرقم القومى - سعود - 25-07-19
إقتباس :لو فيه رابط لموقع يناسب ما تقوله ارجو ارفاقه
وشكرا ليك
كتبت لك رابط للبحث واول نتيجة رائعة .
ان كان قصدك تحويل مشروع كامل من لغة لاخرى فهنا لا اعلم انه يوجد ولم اقصده اصلا .
التحويل يكون جيد وممتاز للاجراءات تنسخ اجراء واحد متكامل بدون نقص وتلصقه ويقوم بتحويله بعد نقر الزر المسؤول عن ذلك.
انت الان لديك خبرة من موضوعك السابق.
ولا اظنه صعب عليك اكمال المشروع.
على كل حال اعطيتك طريقة من الطرق اللي استخدمها ويستخدمها غيري.
RE: مشروع استخراج بيانات الرقم القومى - amonem - 26-07-19
(25-07-19, 09:55 PM)سعود كتب : إقتباس :لو فيه رابط لموقع يناسب ما تقوله ارجو ارفاقه
وشكرا ليك
كتبت لك رابط للبحث واول نتيجة رائعة .
ان كان قصدك تحويل مشروع كامل من لغة لاخرى فهنا لا اعلم انه يوجد ولم اقصده اصلا .
التحويل يكون جيد وممتاز للاجراءات تنسخ اجراء واحد متكامل بدون نقص وتلصقه ويقوم بتحويله بعد نقر الزر المسؤول عن ذلك.
انت الان لديك خبرة من موضوعك السابق.
ولا اظنه صعب عليك اكمال المشروع.
على كل حال اعطيتك طريقة من الطرق اللي استخدمها ويستخدمها غيري.
للاسف جربت الموقع والنتيجه فيها اخطاء كثيره
دا كود داخل مدييول لغه VB.net
ومفروض انه يتغير ل سي شارب
كود :
Function GetMohafza(ByVal RakamKomy As String) As String
Dim MOhfza As String
Dim cod As String
cod = Mid(RakamKomy, 8, 2)
Select Case cod
Case "01"
[MOhfza] = "القاهرة"
Case "02"
[MOhfza] = "الاسكندرية"
Case "16"
[MOhfza] = "الغربية"
Case "33"
[MOhfza] = "مطروح"
Case "24"
[MOhfza] = "المنيا"
Case "18"
[MOhfza] = "البحيرة"
Case "25"
[MOhfza] = "أسيوط"
Case "27"
[MOhfza] = "قنا"
Case "17"
[MOhfza] = "المنوفية"
Case "12"
[MOhfza] = "الدقهلية"
Case "15"
[MOhfza] = "كفر الشيخ"
Case "26"
[MOhfza] = "سوهاج"
Case "13"
[MOhfza] = "الشرقية"
Case "14"
[MOhfza] = "القليوبية"
Case "22"
[MOhfza] = "بنى سويف"
Case "24"
[MOhfza] = "المنيا"
Case "19"
[MOhfza] = "الاسماعيلية"
Case "21"
[MOhfza] = "الجيزة"
Case "28"
[MOhfza] = "أسوان"
Case "29"
[MOhfza] = "الاقصر"
Case Else
[MOhfza] = "unknown"
End Select
GetMohafza = MOhfza
End Function
Function Gender(ByVal RakamKomy As String) As String
Dim cod As Integer
cod = Mid(RakamKomy, 13, 1)
If cod Mod 2 = 0 Then
Gender = "أنثى"
Else
Gender = "ذكر"
End If
End Function
Function BirthDate(ByVal RakamKomy As String) As Date
Try
Dim centry As Integer = Mid(RakamKomy, 1, 1)
Dim BYear As String = IIf(centry = 2, 19, IIf(centry = 3, 20, 21)) & "" & Mid(RakamKomy, 2, 2)
Dim BMonth As String = Mid(RakamKomy, 4, 2)
Dim BDay As String = Mid(RakamKomy, 6, 2)
BirthDate = CDate(BDay & "/" & BMonth & "/" & BYear)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Function Calcday(ByVal vDate1 As Date, ByVal vdate2 As Date)
Dim vMonths As Integer, vDays As Integer
vMonths = DateDiff("m", vDate1, vdate2)
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
If vDays < 0 Then
vMonths = vMonths - 1
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
End If
Calcday = vDays '& "يوم "
End Function
Function CalcMonth(ByVal vDate1 As Date, ByVal vdate2 As Date)
Dim vMonths As Integer, vDays As Integer
vMonths = DateDiff("m", vDate1, vdate2)
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
If vDays < 0 Then
vMonths = vMonths - 1
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
End If
vMonths = vMonths Mod 12
CalcMonth = vMonths '& "شهر "
End Function
Function Calcyear(ByVal vDate1 As Date, ByVal vdate2 As Date)
Dim vYears As Integer, vMonths As Integer, vDays As Integer
vMonths = DateDiff("m", vDate1, vdate2)
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
If vDays < 0 Then
vMonths = vMonths - 1
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
End If
vYears = vMonths \ 12
Calcyear = vYears '& "سنه "
End Function
End Module
RE: مشروع استخراج بيانات الرقم القومى - الحازمي - 26-07-19
أخي أمون
هناك أكواد لا توجد في السي شارب، ولابد لك من برمجة بديل، وهذا ما فعلته في الكلاس التالي
هذا تحويل للموديول وأسميته ClassFuctions (لغة C لا يوجد بها موديول)
أضف كلاس بالإسم ClassFuctions وضع فيه هذا الكود
PHP كود :
class ClassFuctions {
public static string GetMohafza(string RakamKomy) { String MOhfza = "unknown"; String cod = RakamKomy.Substring(7, 2); switch (cod) { case "01": MOhfza = "القاهرة"; break; case "02": MOhfza = "الاسكندرية"; break; case "16": MOhfza = "الغربية"; break; case "33": MOhfza = "مطروح"; break; case "24": MOhfza = "المنيا"; break;
case "18": MOhfza = "البحيرة"; break; case "25": MOhfza = "أسيوط"; break; case "27": MOhfza = "قنا"; break; case "17": MOhfza = "المنوفية"; break;
case "12": MOhfza = "الدقهلية"; break; case "15": MOhfza = "كفر الشيخ"; break; case "26": MOhfza = "سوهاج"; break; case "13": MOhfza = "الشرقية"; break; case "14": MOhfza = "القليوبية"; break; case "22": MOhfza = "بنى سويف"; break; //case "24": // MOhfza = "المنيا"; // break; case "19": MOhfza = "الاسماعيلية"; break; case "21": MOhfza = "الجيزة"; break; case "28": MOhfza = "أسوان"; break; case "29": MOhfza = "الاقصر"; break; default: MOhfza = "unknown"; break; } return MOhfza; }
public static string GetGender(string RakamKomy) { int cod = Convert.ToInt32(RakamKomy.Substring(12, 1)); if (cod % 2 == 0) return "أنثى"; else return "ذكر"; }
public static DateTime GetBirthDate(string RakamKomy) { int centry = 17 + Convert.ToInt32(RakamKomy.Substring(0, 1)); int BYear = Convert.ToInt32(centry.ToString() + RakamKomy.Substring(1, 2)); int BMonth = Convert.ToInt32(RakamKomy.Substring(3, 2)); int BDay = Convert.ToInt32(RakamKomy.Substring(5, 2)); return new DateTime(BYear, BMonth, BDay); }
public static int GetAgeDays(DateTime bDate) { return GetAgePartValue("d", bDate); }
public static int GetAgeMonths(DateTime bDate) { return GetAgePartValue("m", bDate); }
public static int GetAgeYears(DateTime bDate) { return GetAgePartValue("y", bDate); }
private static int GetAgePartValue(string part, DateTime bDate) { int vYears = 0, vMonths = 0, vDays = 0; vYears = DateTime.Today.Year - bDate.Year; vMonths = DateTime.Today.Month - bDate.Month; vDays = DateTime.Today.Day - bDate.Day; if (vDays < 0) { vDays = vDays + 30; vMonths--; } if (vMonths < 0) { vMonths = vMonths + 12; vYears--; } if (part == "d") return vDays; if (part == "m") return vMonths; if (part == "y") return vYears; return -1; }
}
وهذا كود الفورم
PHP كود :
private void Form1_Load(object sender, EventArgs e) { this.Txt_Number.Select(); }
private void button1_Click(object sender, EventArgs e) { if (this.Txt_Number.Text.Trim().Length == 14) { this.TextBox1.Text = ClassFuctions.GetMohafza(this.Txt_Number.Text); //المحافظه// this.TextBox2.Text = ClassFuctions.GetGender(this.Txt_Number.Text); //النوع// this.TextBox3.Text = ClassFuctions.GetBirthDate(this.Txt_Number.Text).ToString("yyyy/MM/dd"); //تاريخ الميلاد// this.TextBox4.Text = ClassFuctions.GetAgeDays(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن يوم// this.TextBox5.Text = ClassFuctions.GetAgeMonths(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن شهر// this.TextBox6.Text = ClassFuctions.GetAgeYears(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن سنه// this.TextBox7.Text = Convert.ToDateTime(this.TextBox3.Text).AddYears(60).AddDays(-1).ToString("yyyy/MM/dd"); //سن المعاش//
} else { this.TextBox1.Clear(); this.TextBox2.Clear(); this.TextBox3.Clear(); this.TextBox4.Clear(); this.TextBox5.Clear(); this.TextBox6.Clear(); this.TextBox7.Clear(); } }
مع ملاحظة التدقيق في أسماء الأدوات، لأن لغة C عموما حساسة لحالة الأحرف.
أخي أحمد
إن كان هناك استفسار في هذه الأكواد فأخبرني
RE: مشروع استخراج بيانات الرقم القومى - amonem - 26-07-19
(26-07-19, 05:17 AM)الحازمي كتب : أخي أمون
هناك أكواد لا توجد في السي شارب، ولابد لك من برمجة بديل، وهذا ما فعلته في الكلاس التالي
هذا تحويل للموديول وأسميته ClassFuctions (لغة C لا يوجد بها موديول)
أضف كلاس بالإسم ClassFuctions وضع فيه هذا الكود
PHP كود :
class ClassFuctions {
public static string GetMohafza(string RakamKomy) { String MOhfza = "unknown"; String cod = RakamKomy.Substring(7, 2); switch (cod) { case "01": MOhfza = "القاهرة"; break; case "02": MOhfza = "الاسكندرية"; break; case "16": MOhfza = "الغربية"; break; case "33": MOhfza = "مطروح"; break; case "24": MOhfza = "المنيا"; break;
case "18": MOhfza = "البحيرة"; break; case "25": MOhfza = "أسيوط"; break; case "27": MOhfza = "قنا"; break; case "17": MOhfza = "المنوفية"; break;
case "12": MOhfza = "الدقهلية"; break; case "15": MOhfza = "كفر الشيخ"; break; case "26": MOhfza = "سوهاج"; break; case "13": MOhfza = "الشرقية"; break; case "14": MOhfza = "القليوبية"; break; case "22": MOhfza = "بنى سويف"; break; //case "24": // MOhfza = "المنيا"; // break; case "19": MOhfza = "الاسماعيلية"; break; case "21": MOhfza = "الجيزة"; break; case "28": MOhfza = "أسوان"; break; case "29": MOhfza = "الاقصر"; break; default: MOhfza = "unknown"; break; } return MOhfza; }
public static string GetGender(string RakamKomy) { int cod = Convert.ToInt32(RakamKomy.Substring(12, 1)); if (cod == 0) return "أنثى"; else return "ذكر"; }
public static DateTime GetBirthDate(string RakamKomy) { int centry = 17 + Convert.ToInt32(RakamKomy.Substring(0, 1)); int BYear = Convert.ToInt32(centry.ToString() + RakamKomy.Substring(1, 2)); int BMonth = Convert.ToInt32(RakamKomy.Substring(3, 2)); int BDay = Convert.ToInt32(RakamKomy.Substring(5, 2)); return new DateTime(BYear, BMonth, BDay); }
public static int GetAgeDays(DateTime bDate) { return GetAgePartValue("d", bDate); }
public static int GetAgeMonths(DateTime bDate) { return GetAgePartValue("m", bDate); }
public static int GetAgeYears(DateTime bDate) { return GetAgePartValue("y", bDate); }
private static int GetAgePartValue(string part, DateTime bDate) { int vYears = 0, vMonths = 0, vDays = 0; vYears = DateTime.Today.Year - bDate.Year; vMonths = DateTime.Today.Month - bDate.Month; vDays = DateTime.Today.Day - bDate.Day; if (vDays < 0) { vDays = vDays + 30; vMonths--; } if (vMonths < 0) { vMonths = vMonths + 12; vYears--; } if (part == "d") return vDays; if (part == "m") return vMonths; if (part == "y") return vYears; return -1; }
}
وهذا كود الفورم
PHP كود :
private void Form1_Load(object sender, EventArgs e) { this.Txt_Number.Select(); }
private void button1_Click(object sender, EventArgs e) { if (this.Txt_Number.Text.Trim().Length == 14) { this.TextBox1.Text = ClassFuctions.GetMohafza(this.Txt_Number.Text); //المحافظه// this.TextBox2.Text = ClassFuctions.GetGender(this.Txt_Number.Text); //النوع// this.TextBox3.Text = ClassFuctions.GetBirthDate(this.Txt_Number.Text).ToString("yyyy/MM/dd"); //تاريخ الميلاد// this.TextBox4.Text = ClassFuctions.GetAgeDays(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن يوم// this.TextBox5.Text = ClassFuctions.GetAgeMonths(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن شهر// this.TextBox6.Text = ClassFuctions.GetAgeYears(Convert.ToDateTime(this.TextBox3.Text)).ToString(); //حساب السن سنه// this.TextBox7.Text = Convert.ToDateTime(this.TextBox3.Text).AddYears(60).AddDays(-1).ToString("yyyy/MM/dd"); //سن المعاش//
} else { this.TextBox1.Clear(); this.TextBox2.Clear(); this.TextBox3.Clear(); this.TextBox4.Clear(); this.TextBox5.Clear(); this.TextBox6.Clear(); this.TextBox7.Clear(); } }
مع ملاحظة التدقيق في أسماء الأدوات، لأن لغة C عموما حساسة لحالة الأحرف.
أخي أحمد
إن كان هناك استفسار في هذه الأكواد فأخبرني
الله ينور عليك استاذي الغالى
شكرا على مجهودك
الملف شغال نمام لكن به خطأ فى الجنس ذكر او انثى
RE: مشروع استخراج بيانات الرقم القومى - ابراهيم ايبو - 26-07-19
السلام عليكم
احي استبدل الرقم في كود الجنس (حدث سهوا) 12 اجعلها 13
هذا الكود
PHP كود :
public static string GetGender(string RakamKomy) { int cod = Convert.ToInt32(RakamKomy.Substring(12, 1)); if (cod == 0) return "أنثى"; else return "ذكر"; }
احعله هكذا
PHP كود :
public static string GetGender(string RakamKomy) { int cod = Convert.ToInt32(RakamKomy.Substring(13, 1)); if (cod == 0) return "أنثى"; else return "ذكر"; }
RE: مشروع استخراج بيانات الرقم القومى - الحازمي - 26-07-19
أخي أحمد
إذا كان رقم ترتيب رمز النوع (ذكر/أنثى) هو الثالث عشر فتصحيح الخطأ يكون cod == 1
أخي ابراهيم
Substring يبدأ ترقيم الترتيب من 0 بخلاف Mid الذي يبدأ ترقيم الترتيب من 1
لهذا كان رقم الترتيب لرمز النوع 12 وليس 13 لأنني استخدمت Substring وليس Mid
أخي أحمد
إذا كان هناك استفسار آخر في الكود فأخبرني
RE: مشروع استخراج بيانات الرقم القومى - قناص المدينة - 26-07-19
[attachment=22192][attachment=22192]سلام عليكم روحمة الله عندي مثال قديم ولا اعرف ان كان هو نفس الفكره وكذا لا اعرف من صممه
|