السلام عليكــم ورحمـة الله وبركاتــه ،،
اجد صعوبه في التعامل مع دالة 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;
}انتظر مساعدتكم