NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
David Frau
Člen
Avatar
David Frau:4.8.2016 18:32

Čau, mám menší problém... Pokaždé mi to po okamžiku od spuštění vyhodí System.IndexOu­tOfRangeExcep­tion
... Nevíte co s tím?

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ctecka1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int s = 0;
            int m = 0;
            int doba = 0;
            int rozdil = 0;
            DateTime cas = DateTime.Now;
            StreamReader sr = new StreamReader(@"mezipamet.txt");
            while (lb1.Text != "1024")
            {
                string srVystup = "d";
                string[] pole = new string[4];
                pole[0] = "0";
                pole[1] = "0";
                pole[2] = "0";
                pole[3] = "0";
                pole[4] = "0";

                if (sr.ReadLine() != null)srVystup = sr.ReadLine();
                sr.Close();
                if (srVystup != null)pole = srVystup.Split(',');
                cas = DateTime.Now;
                lb1.Text = pole[2];
                lb2.Text = pole[3];
                lb3.Text = pole[4];
                lb4.Text = pole[0] + "," + pole[1];
                lb5.Text = cas.Second + "," + cas.Millisecond;
                int.TryParse(pole[0], out s);
                int.TryParse(pole[1], out m);
                doba = cas.Millisecond - m;
                if (s != cas.Second)
                {
                    rozdil = cas.Second - s;
                }
                doba = doba + 1000 * rozdil;
                lb6.Text = "doba";

            }
        }
    }
}
 
Odpovědět
4.8.2016 18:32
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na David Frau
gcx11:4.8.2016 18:36

Ahoj, řekl bych, že je problém v tomhle

string[] pole = new string[4];
                pole[0] = "0";
                pole[1] = "0";
                pole[2] = "0";
                pole[3] = "0";
                pole[4] = "0";

Jelikož sis nadeklaroval pole o velikosti 4 prvků a snažíš se přistoupit na pátý.

 
Nahoru Odpovědět
4.8.2016 18:36
Avatar
David Frau
Člen
Avatar
Odpovídá na gcx11
David Frau:5.8.2016 11:45

Aha, to bude možná tím :D
Zkusím a dám vědět.
Díky

 
Nahoru Odpovědět
5.8.2016 11:45
Avatar
David Frau
Člen
Avatar
Odpovídá na David Frau
David Frau:5.8.2016 11:51

Tak pole jsem nastavil na velikost 5, potom mi to házelo chybu
"Ze zavřeného objektu TextReader nelze číst."
zde:

if (sr.ReadLine() != null)srVystup = sr.ReadLine();

tak jsem to změnil na

srVystup = sr.ReadLine();

a snad to běží, chyby už nejsou. :D
Díky za pomoc, myslel jsem že při deklaraci novýho pole tam píšu délku jakožto konečný index :D

 
Nahoru Odpovědět
5.8.2016 11:51
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.