الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع Goto

بدأه abeer Eng في 3 مايو 2009 · 0 رد · 307 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكــم ورحمـة الله وبركاتــه ،،

اجد صعوبه في التعامل مع دالة goto

حيث استخدمتها في مشروع و الحمدلله انجزت المهمه

و لكن هناك جزئيه في البرنامج اضطررت لاعادته

و اعلم ان هذا الشيئ يعيب الكود البرمجي

اتمنى مساعدتكم لي في تجاوز هذا المشكله

هذا هو برنامجي

الزر الاول

 StreamReader reader = new StreamReader(filename);
			string strLine;
			string strnum = "30562";
			strLine = reader.ReadLine();
			textBox2.Text = strLine;
			int x = 0, sen = 0, temp = 0;
			int num2 = Convert.ToInt32(strnum[x].ToString());
			int strnum_size = strnum.Length - 1;
			int num = 80 - strLine.Length;
		test:
			if (temp > 0)
			{
				for (int j = 0; j < temp; temp++)
				{
					textBox2.Text += " ";
				}
				temp = 0;
			}
			if (sen == 0)
			{
				if (num2 + 8 <= num)
				{//  هذه اول حاله لو كان num2 يحمل قيمه صفر
					if (num2 == 0)
					{
						textBox2.Text += '\t';
						sen = 1;
					}
					// ثاني حاله لو كان اقل ولكن لا يساوي صفر
					else
					{
						for (int i = 0; i < num2; i++)
						{
							if (i == 0)
							{
								textBox2.Text += '\t';
							}
							textBox2.Text += "*";
						}
						sen = 1;
					}
					num2 = num2 - num2;
					num = num - num2;

				}
			}
			if (num2 + 8 > num && 8 <= num)
			{
				temp = (num2 + 8) - temp;
				num2 = num2 - temp;
				num = num - num2;
				goto test;

			}

			if (num == 0 || 8 >= num)
			{
				textBox2.Text += "\r\n";
				strLine = reader.ReadLine();
				textBox2.Text += strLine;
				num = 80 - strLine.Length;
			}

			if (strnum_size != 0 && sen == 1 && temp == 0)
			{
				x++;
				if (x < strnum.Length)
				{
					num2 = Convert.ToInt32(strnum[x].ToString());
					textBox3.Text += num2.ToString();
					strnum_size--;
				}
				sen = 0;
				goto test;
			}

الزر الثاني

  if (strnum_size != 0)
		   {
			   int num = 80;
		   test:
			   if (temp > 0)
			   {
				   for (int j = 0; j < temp; temp++)
				   {
					   textBox1.Text += " ";
				   }
				   temp = 0;
			   }
			   if (sen == 0)
			   {
				   if (num2 + 8 <= num)
				   {//  هذه اول حاله لو كان num2 يحمل قيمه صفر
					   if (num2 == 0)
					   {
						   textBox1.Text += '\t';
						   sen = 1;
					   }
					   // ثاني حاله لو كان اقل ولكن لا يساوي صفر
					   else
					   {
						   for (int i = 0; i < num2; i++)
						   {
							   if (i == 0)
							   {
								   textBox1.Text += '\t';
							   }
							   textBox1.Text += "*";
						   }
						   sen = 1;
					   }
					   num2 = num2 - num2;
					   num = num - num2;
					   goto test2;
				   }
			   }
			   if (num2 + 8 > num && 8 <= num)
			   {
				   temp = (num2 + 8) - temp;
				   num2 = num2 - temp;
				   num = num - num2;
				   goto test;

			   }
		   test2:
			   if (num == 0 || 8 >= num)
			   {
				   textBox1.Text += "\r\n";
				   num = 80;
			   }
			   ///end of test
			   if (strnum_size != 0 && sen == 1 && temp == 0)
			   {
				   x++;
				   if (x < strnum.Length)
				   {
					   num2 = Convert.ToInt32(strnum[x].ToString());
					   textBox3.Text += num2.ToString();
					   strnum_size--;
				   }
				   sen = 0;
				   goto test;
			   }
		   }

هل توجد طريقه للجمع بين الكودين بزر واحد

يعني اخلي الكود الاول يمش مثل مو مطلوب

والكود اللي موجود بالزر الثاني

يستخدم الكود الاول حتى يصل الى هاذه النقطة

 if (num == 0 || 8 >= num)
			   {
				   textBox1.Text += "\r\n";
				   num = 80;
			   }

و يصير يقفز لجمة اخرى هي

 if (num == 0 || 8 >= num)
			{
				textBox2.Text += "\r\n";
				strLine = reader.ReadLine();
				textBox2.Text += strLine;
				num = 80 - strLine.Length;
			}

انتظر مساعدتكم

مواضيع مشابهة