Avatar
pajamac5
Člen
Avatar
pajamac5:

Zdravím jsem to zase já kdo vám sebere kousek vašeho drahoceného času:).

private void timer1_Tick(object sender, EventArgs e)
        {

            poradi = poradi + 1;
            timer1.Interval = intervall;
            //načte text
            string [] slova = File.ReadAllText(textt, Encoding.Default)
            //rozplituje text
            .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);

            //zobrazí slovo po slovu
            foreach (string slovo in slova)
            {

                txtText.Text = slova[poradi];
            }

tento kód mi bohužel hází chybu "Index je mimo hranice pole",je nějaká možnost jak tomuto přetečení zabránit?

Odpovědět 13.7.2014 20:08
Co tě nezabije se tě pokusí zabít znovu.
Avatar
Nahoru Odpovědět 13.7.2014 20:10
Nesnáším {}, proto se jim vyhýbám.
Avatar
pajamac5
Člen
Avatar
Nahoru Odpovědět 13.7.2014 20:14
Co tě nezabije se tě pokusí zabít znovu.
Avatar
Michal Žůrek (misaz):

Protože v každém tisku zvyšuješ pořadí a nikde nekontroluješ, jestli už jsi na konci.

Nahoru Odpovědět 13.7.2014 20:25
Nesnáším {}, proto se jim vyhýbám.
Avatar
pajamac5
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
pajamac5:

Ano ale jak to mám udělat jak zjistím kolik je v poli položek?

Nahoru Odpovědět 13.7.2014 20:30
Co tě nezabije se tě pokusí zabít znovu.
Avatar
Odpovídá na pajamac5
Ondřej Štorc:

slova.lenght ti vrátí počet prvků v poli..
Takže dát něco takového na začátek:

if(pole.Lenght == poradi)
timer1.Stop()
Nahoru Odpovědět 13.7.2014 20:48
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
coells
Redaktor
Avatar
Odpovídá na pajamac5
coells:
private int poradi = -1;
private string [] slova = null;

private void timer1_Tick(object sender, EventArgs e)
{
    if (slova == null)
    {
        poradi = 0;
        slova = File.ReadAllText(text, Encoding.Default).Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);
    }

    txtText.Text = slova[poradi++];

    if (poradi >= slova.length)
    {
        poradi = -1;
        slova = null;
        this.timer1.Enabled = false;
    }
}
 
Nahoru Odpovědět 13.7.2014 21:19
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 7 zpráv z 7.