Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: System.IndexOutOfRangeException

C# .NET .NET (C# a Visual Basic) System.IndexOutOfRangeException American English version English version

Aktivity (1)
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
Redaktor
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  +6 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.