خطا در هنگام اجرای برنامه در #C

#C

توسط softafzar2 در 4 سال پیش
0 1k 9 4 سال پیش
softafzar2thearrowcomodotheknight
0

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

0

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

0

خط به خط اجرا نمیشه یعنی چی؟ :smiles (14):

0

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

ابتدا تصویر قبل از اجرای برنامه :

تصویر کد program.cs:

تصویر وقتی برنامه اجرا می کنیم همانطور که در تصویر می بینید BreakPoint ها به صورت غیر فعال می باشند:

0

کد مربوط به باتونی که بعد از کلیک باعث ایجاد خطا می شود 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
0

و خطایی که پس از اجرا شدن برنامه نمایش داده می شود

0

یعنی BreakPoint اجرا نمی شود.

0

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

0

> درود کدها رو باید در بلاک کد بذاری اصلا نمیشه خوندش یه پروژه دیگه ایجاد کن ببین اونجا هم 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 

]

0

کد برنامم به صورت عکس:

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید