خطا در هنگام اجرای برنامه در #C
#1
Note 
سلام بر دوستان عزیز
دوستان من یه مشکل در برنامه دارم اینه که وقتی؛ یک برنامه نوشتم وقتی اجرا می کنم اول از همه به صورت خط به خط اجرا نمی شه و وقتی فرم برنامه میاد بالا و وقتی کلیک می کنم بر روی دکمه مربوط بر روی فرم پیغام خطای Index and length must refer to a location within the string.
Parameter name: length
میده حتی به صورت خط به خطم برنامه اجرا نمیشه من نمیدونم باید چه کار کنم ، دوستان یه لطف می کنین کمکم کنین؟؟؟؟؟؟؟؟:coolsmiley02:

پاسخ
#2
Note 
سلام
به سافت افزار خوش اومدید
لطفا سورس برنامتون رو بزارید تا بتونیم بهتر کمکتون کنیم

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#3
Note 
خط به خط اجرا نمیشه یعنی چی؟ Confusedmiles (14):

پاسخ
#4
Note 
منظور از خط به خط اجرا شدن کد قرار دادن BreakPoint می باشد که حالت اجرا در نمی آید.

ابتدا تصویر قبل از اجرای برنامه :
[تصویر:  ngri3ljwihopi3rvz0o1.jpg]
تصویر کد program.cs:
[تصویر:  95zqakf7i15w1h7lkyig.jpg]
تصویر وقتی برنامه اجرا می کنیم همانطور که در تصویر می بینید BreakPoint ها به صورت غیر فعال می باشند:
[تصویر:  k257s03e01zb56bbegtw.jpg]

پاسخ
#5
Note 
کد مربوط به باتونی که بعد از کلیک باعث ایجاد خطا می شود
private void button1_Click(object sender, EventArgs e)
{

//date.now
string a = "", b = "", sal = "", mah = "", roz = "", Msal = "", Mmah = "", Mroz = "";
int l8 = 0, shMakos = 0, sh = 0;
textBox8.Text = string.Format("{0:d}", DateTime.Now);
a = textBox8.Text;
l8 = a.Length;
for (int i = 0; i < l8; i++)
{
b = a.Substring(i, 1);
if (b == "/")
{
shMakos++;
continue;
}
else
{
if (shMakos == 0) Mmah += b;//yani barabar Mmah(makos mah)
if (shMakos == 1) Mroz += b;//yani barabar Mroz(makos roz)
if (shMakos == 2) Msal += b;//yani barabar Msal(makos sal)
}
}//End for
textBox8.Text = Msal + "/" + Mmah + "/" + Mroz;//makos tarikh ra dar TEXT berizad
//joda kardne tarikh
b = "";
a = textBox8.Text;
l8 = a.Length;

for (int j = 0; j < l8; j++)
{
b = a.Substring(j, 1);
if (b == "/")
{
sh++;
continue;
}
else
{
if (sh == 0) sal += b;
if (sh == 1) mah += b;
if (sh == 2) roz += b;
}
}//end for
YearD = sal;
MonthD = mah;
RouzD = roz;







//delete ALL jadval chek emtehan
selectcheknomreh1TableAdapter.Delete();
selectcheknomreh1TableAdapter.Fill(dB_AlmaniDataSet.selectcheknomreh1);
//

if (textBox1.Text == "") textBox1.BackColor = Color.LightPink;
if (comboBox1.SelectedIndex == null || textBox2.Text == " " || textBox2.Text == "") label2.ForeColor = Color.Red;

//chek kardan cod rahgiri
bool? chekCODr = false;
chekcodrahgiriTableAdapter.Fill(dB_AlmaniDataSet.chekcodrahgiri, textBox1.Text, ref chekCODr);//cod rahgiri ra barresi mikounad ke aya daneshjo sabt name karde ya kheyr.

if (chekCODr == true)
{



//taeen sath
if (textBox1.ForeColor != Color.LightPink && label2.ForeColor != Color.Red && comboBox1.SelectedIndex == 0)//taeen sath
{

int? tedadtaeen = 0;
tedadtaeenTableAdapter.Fill(dB_AlmaniDataSet.tedadtaeen, ref tedadtaeen);//tedad soualat ra daryaft mikounad
textBox4.Text = tedadtaeen.ToString();
//timer
timerEmtehan = tedadtaeen;
timerEmtehan = timerEmtehan * 60;//tabdil be sanie

textBox6.Text = tedadtaeen.ToString();
timer1.Enabled = true;
//end timer
if (tedadtaeen > 0)
{
selecttaeenTableAdapter.Fill(dB_AlmaniDataSet.selecttaeen);//entekhab soualat (records)
for (int i = 0; i <= tedadtaeen; i++)
{
DataRow rowt = dB_AlmaniDataSet.selecttaeen[i];
textBox5.Text = rowt["Sh_taeen"].ToString();//shomareh soual
richTextBox1.Text = rowt["Soual_taeen"].ToString();//soual
richTextBox2.Text = rowt["A_taeen"].ToString();//a
richTextBox3.Text = rowt["B_taeen"].ToString();//b
richTextBox4.Text = rowt["C_taeen"].ToString();//c
richTextBox5.Text = rowt["D_taeen"].ToString();//d
button1.Enabled = false;
comboBox1.Enabled = false;
textBox1.Enabled = false;
panel1.Visible = true;
break;
}
}



}
//end

آخرین ویرایش: 14-07-2014 ساعت 21:26، توسط softafzar2
پاسخ
#6
Note 
و خطایی که پس از اجرا شدن برنامه نمایش داده می شود
[تصویر:  6jvqt6z9c2aeg52ejmua.jpg]

پاسخ
#7
Note 
یعنی BreakPoint اجرا نمی شود.

پاسخ
#8
Note 
درود
کدها رو باید در بلاک کد بذاری اصلا نمیشه خوندش
یه پروژه دیگه ایجاد کن ببین اونجا هم Breakpoint ها همینطوری ان؟
خطا ربطی به Breakpoint نداره شم این همه کد گذاشتی ولی نگفتی خطا واسه کجاست؟
احتمالا واسه substring ه خطا میکه نقطه شروع و طول رو درست مشخص نکردی یعنی عددهایی که دادای به هیچ جای تو رشته اشاره نمیکنن.

چطور امضا کنم؟  Huh
پاسخ
#9
Note 
THE KNIGHT نوشته است:درود
کدها رو باید در بلاک کد بذاری اصلا نمیشه خوندش
یه پروژه دیگه ایجاد کن ببین اونجا هم Breakpoint ها همینطوری ان؟
خطا ربطی به Breakpoint نداره شم این همه کد گذاشتی ولی نگفتی خطا واسه کجاست؟

احتمالا واسه substring ه خطا میکه نقطه شروع و طول رو درست مشخص نکردی یعنی عددهایی که دادای به هیچ جای تو رشته اشاره نمیکنن.
سلام دوستم!
مشکل اینجاست که اصلاً من نمیدونم مشکل از کدوم خط چون پیغام روی خط نشون نمیده وقتی پیغام ظاهر میشه پنجرهی Disassembly نمایش داده میشود وپنجره خطا در آنجا به نمایش در میآید؟؟

کد :

[ //date.now
string a = "", b = "", sal = "", mah = "", roz = "", Msal = "", Mmah = "", Mroz = "";
int l8 = 0, shMakos = 0, sh = 0;
textBox8.Text = string.Format("{0:d}", DateTime.Now);
a = textBox8.Text;
l8 = a.Length;
for (int i = 0; i < l8; i++)
{
b = a.Substring(i, 1);
if (b == "/")
{
shMakos++;
continue;
}
else
{
if (shMakos == 0) Mmah += b;//yani barabar Mmah(makos mah)
if (shMakos == 1) Mroz += b;//yani barabar Mroz(makos roz)
if (shMakos == 2) Msal += b;//yani barabar Msal(makos sal)
}
}//End for
textBox8.Text = Msal + "/" + Mmah + "/" + Mroz;//makos tarikh ra dar TEXT berizad
//joda kardne tarikh
b = "";
a = textBox8.Text;
l8 = a.Length;

for (int j = 0; j < l8; j++)
{
b = a.Substring(j, 1);
if (b == "/")
{
sh++;
continue;
}
else
{
if (sh == 0) sal += b;
if (sh == 1) mah += b;
if (sh == 2) roz += b;
}
}//end for
YearD = sal;
MonthD = mah;
RouzD = roz;







//delete ALL jadval chek emtehan
selectcheknomreh1TableAdapter.Delete();
selectcheknomreh1TableAdapter.Fill(dB_AlmaniDataSet.selectcheknomreh1);
//

if (textBox1.Text == "") textBox1.BackColor = Color.LightPink;
if (comboBox1.SelectedIndex == null || textBox2.Text == " " || textBox2.Text == "") label2.ForeColor = Color.Red;

//chek kardan cod rahgiri
bool? chekCODr = false;
chekcodrahgiriTableAdapter.Fill(dB_AlmaniDataSet.chekcodrahgiri, textBox1.Text, ref chekCODr);//cod rahgiri ra barresi mikounad ke aya daneshjo sabt name karde ya kheyr.

if (chekCODr == true)
{



//taeen sath
if (textBox1.ForeColor != Color.LightPink && label2.ForeColor != Color.Red && comboBox1.SelectedIndex == 0)//taeen sath
{

int? tedadtaeen = 0;
tedadtaeenTableAdapter.Fill(dB_AlmaniDataSet.tedadtaeen, ref tedadtaeen);//tedad soualat ra daryaft mikounad
textBox4.Text = tedadtaeen.ToString();
//timer
timerEmtehan = tedadtaeen;
timerEmtehan = timerEmtehan * 60;//tabdil be sanie

textBox6.Text = tedadtaeen.ToString();
timer1.Enabled = true;
//end timer
if (tedadtaeen > 0)
{
selecttaeenTableAdapter.Fill(dB_AlmaniDataSet.selecttaeen);//entekhab soualat (records)
for (int i = 0; i <= tedadtaeen; i++)
{
DataRow rowt = dB_AlmaniDataSet.selecttaeen[i];
textBox5.Text = rowt["Sh_taeen"].ToString();//shomareh soual
richTextBox1.Text = rowt["Soual_taeen"].ToString();//soual
richTextBox2.Text = rowt["A_taeen"].ToString();//a
richTextBox3.Text = rowt["B_taeen"].ToString();//b
richTextBox4.Text = rowt["C_taeen"].ToString();//c
richTextBox5.Text = rowt["D_taeen"].ToString();//d
button1.Enabled = false;
comboBox1.Enabled = false;
textBox1.Enabled = false;
panel1.Visible = true;
break;
}
}



}
//end
]

پاسخ
#10
Note 
کد برنامم به صورت عکس:
[تصویر:  9mcpm9b95esqegc9sp0r.jpg]
[تصویر:  n1ya7jz69ac9oapa8uhk.jpg]
[تصویر:  oxn6j9t7tplsna8jd22d.jpg]
[تصویر:  tvbjqgatx199x244n8vo.jpg]

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

کاربرانِ درحال بازدید از این موضوع:   1 مهمان