منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشروع استخراج بيانات الرقم القومى
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
السلام عليكم ورحمة الله تعالى وبركاته
اعضاء المنتدى الكرام
كل عام وانت جميعا بخير
مرفق ملف لاستخراج البيانات من الرقم القومى 
يعمل جيدا دون اى اخطاء بلغه  VB.net

هل من الممكن ننفيذ هذا المشروع بلغه السي شارب
وعليكم السلام ورحمة الله وبركاته
اخي الكريم اسمح لي بهذه الكلمات وان لم تعجبك لاترد ....  فاحذفها مباشرة لاني لا احب ان ازعج احد لكني احب ابداء راي ارى فيه منفعة .
افتح صفحة لاحدى مواقع التحويل من vb to csharp  واضف لمشروع جديد الكلاسات والموديولات والفورمات واحدة تلو الاخرى بعد اتمام كل كلاس انتقل للاخر.
وابدا بالبحث عن vb to c# converter
عند التوقف عند كل خطوة  اذكر تفاصيل تلك الخطوة .
لان عدم ذكر التفاصيل سنعود بك الى الخطوة الاولى وبهذا لن تحصل على المطلوب بشكل سريع.
أرجو والله ان لا تنزعج مما كتبته الان.
والسلام عليكم ورحمة الله  وبركاته
(25-07-19, 09:24 PM)سعود كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته
اخي الكريم اسمح لي بهذه الكلمات وان لم تعجبك لاترد ....  فاحذفها مباشرة لاني لا احب ان ازعج احد لكني احب ابداء راي ارى فيه منفعة .
افتح صفحة لاحدى مواقع التحويل من vb to csharp  واضف لمشروع جديد الكلاسات والموديولات والفورمات واحدة تلو الاخرى بعد اتمام كل كلاس انتقل للاخر.
وابدا بالبحث عن vb to c# converter
عند التوقف عند كل خطوة  اذكر تفاصيل تلك الخطوة .
لان عدم ذكر التفاصيل سنعود بك الى الخطوة الاولى وبهذا لن تحصل على المطلوب بشكل سريع.
أرجو والله ان لا تنزعج مما كتبته الان.
والسلام عليكم ورحمة الله  وبركاته
مافيش ازعاج ولا حاجه استاذي الفاضل

لو فيه رابط لموقع يناسب ما تقوله ارجو ارفاقه
وشكرا ليك
إقتباس :لو فيه رابط لموقع يناسب ما تقوله ارجو ارفاقه

وشكرا ليك
كتبت لك رابط للبحث واول نتيجة رائعة .
ان كان قصدك تحويل مشروع كامل من لغة لاخرى فهنا  لا اعلم انه يوجد ولم اقصده اصلا .
التحويل يكون جيد وممتاز للاجراءات  تنسخ اجراء واحد متكامل بدون نقص وتلصقه ويقوم بتحويله بعد نقر الزر المسؤول عن ذلك.
انت الان لديك خبرة من موضوعك السابق.
ولا اظنه صعب عليك اكمال المشروع.
على كل حال اعطيتك طريقة من الطرق اللي استخدمها ويستخدمها غيري.
(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
أخي أمون

هناك أكواد لا توجد في السي شارب، ولابد لك من برمجة بديل، وهذا ما فعلته في الكلاس التالي

هذا تحويل للموديول وأسميته ClassFuctions  (لغة C لا يوجد بها موديول)
أضف كلاس بالإسم ClassFuctions وضع فيه هذا الكود
PHP كود :
class ClassFuctions
{

 
   public static string GetMohafza(string RakamKomy) {
 
       String MOhfza "unknown";
 
       String cod RakamKomy.Substring(72);
 
       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(121));
 
       if (cod == 0)
 
           return "أنثى";
 
       else
            return 
"ذكر";
 
   }

 
   public static DateTime GetBirthDate(string RakamKomy) {
 
       int centry 17 Convert.ToInt32(RakamKomy.Substring(01));
 
       int BYear Convert.ToInt32(centry.ToString() + RakamKomy.Substring(12));
 
       int BMonth Convert.ToInt32(RakamKomy.Substring(32));
 
       int BDay Convert.ToInt32(RakamKomy.Substring(52));
 
       return new DateTime(BYearBMonthBDay);
 
   }

 
   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 partDateTime bDate) {
 
       int vYears 0vMonths 0vDays 0;
 
       vYears DateTime.Today.Year bDate.Year;
 
       vMonths DateTime.Today.Month bDate.Month;
 
       vDays DateTime.Today.Day bDate.Day;
 
       if (vDays 0) { vDays vDays 30vMonths--; }
 
       if (vMonths 0) { vMonths vMonths 12vYears--; }
 
       if (part == "d") return vDays;
 
       if (part == "m") return vMonths;
 
       if (part == "y") return vYears;
 
       return -1;
 
   }



وهذا كود الفورم
PHP كود :
private void Form1_Load(object senderEventArgs e) {
 
   this.Txt_Number.Select();
}

private 
void button1_Click(object senderEventArgs 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 عموما حساسة لحالة الأحرف.


أخي أحمد
إن كان هناك استفسار في هذه الأكواد فأخبرني
(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(72);
 
       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(121));
 
       if (cod == 0)
 
           return "أنثى";
 
       else
            return 
"ذكر";
 
   }

 
   public static DateTime GetBirthDate(string RakamKomy) {
 
       int centry 17 Convert.ToInt32(RakamKomy.Substring(01));
 
       int BYear Convert.ToInt32(centry.ToString() + RakamKomy.Substring(12));
 
       int BMonth Convert.ToInt32(RakamKomy.Substring(32));
 
       int BDay Convert.ToInt32(RakamKomy.Substring(52));
 
       return new DateTime(BYearBMonthBDay);
 
   }

 
   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 partDateTime bDate) {
 
       int vYears 0vMonths 0vDays 0;
 
       vYears DateTime.Today.Year bDate.Year;
 
       vMonths DateTime.Today.Month bDate.Month;
 
       vDays DateTime.Today.Day bDate.Day;
 
       if (vDays 0) { vDays vDays 30vMonths--; }
 
       if (vMonths 0) { vMonths vMonths 12vYears--; }
 
       if (part == "d") return vDays;
 
       if (part == "m") return vMonths;
 
       if (part == "y") return vYears;
 
       return -1;
 
   }



وهذا كود الفورم
PHP كود :
private void Form1_Load(object senderEventArgs e) {
 
   this.Txt_Number.Select();
}

private 
void button1_Click(object senderEventArgs 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 عموما حساسة لحالة الأحرف.


أخي أحمد
إن كان هناك استفسار في هذه الأكواد فأخبرني
الله ينور عليك استاذي الغالى
شكرا على مجهودك 

الملف شغال نمام لكن به خطأ فى الجنس ذكر او انثى
السلام عليكم 
احي استبدل الرقم في كود الجنس (حدث سهوا) 12 اجعلها 13
هذا الكود
PHP كود :
public static string GetGender(string RakamKomy) {
 
       int cod Convert.ToInt32(RakamKomy.Substring(121));
 
       if (cod == 0)
 
           return "أنثى";
 
       else
            return 
"ذكر";
 
   
احعله هكذا
PHP كود :
public static string GetGender(string RakamKomy) {
 
       int cod Convert.ToInt32(RakamKomy.Substring(131));
 
       if (cod == 0)
 
           return "أنثى";
 
       else
            return 
"ذكر";
 
   
أخي أحمد

إذا كان رقم ترتيب رمز النوع (ذكر/أنثى) هو الثالث عشر فتصحيح الخطأ يكون cod == 1

أخي ابراهيم
Substring يبدأ ترقيم الترتيب من 0 بخلاف Mid الذي يبدأ ترقيم الترتيب من 1
لهذا كان رقم الترتيب لرمز النوع 12 وليس 13 لأنني استخدمت Substring وليس Mid


أخي أحمد
إذا كان هناك استفسار آخر في الكود فأخبرني
[attachment=22192][attachment=22192]سلام عليكم روحمة الله عندي مثال قديم ولا اعرف ان كان هو نفس الفكره وكذا لا اعرف من صممه
الصفحات : 1 2 3