NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Honza Rada
Člen
Avatar
Honza Rada:7.8.2017 8:17

Mám problém furt mi to hází index je mimo hranici pole
kod:
public void Uloz()
{
string cesta = Path.Combine(En­vironment.Get­FolderPath(En­vironment.Spe­cialFolder.Ap­plicationData), "Diar");
try
{

try
{
using (StreamWriter sr = new StreamWriter(Pat­h.Combine(ces­ta, "Zaznamy.cvs")))
{
foreach (Zaznam z in Zaznamy)
{
string[] Hodnoty = { z.Text, z.Cas.ToLongTi­meString(), z.Datum.ToShor­tDateString() };
string radek = String.Join(";", Hodnoty);
sr.WriteLine(ra­dek);

}
sr.Flush();
}
using (StreamWriter sr = new StreamWriter(Pat­h.Combine(ces­ta, "Ukoly.cvs")))
{
foreach (Ukol u in Ukoly)
{
string[] Hodnoty = { u.TextUkolu, u.DulezitostU­kolu.ToString(), u.DatumSplneni­.ToShortDateS­tring() };
string radek = String.Join(";", Hodnoty);
sr.WriteLine(ra­dek);
}
sr.Flush();
}
}
catch (Exception e)
{
Console.Write­Line("Při načítání nastavení došlo k následující chybě: {0}", e.Message);
}

}
catch
{
throw new Exception("ne­podařila se vytvořit cesta");
}

}

private void Nacti()
{
string cesta = Path.Combine(En­vironment.Get­FolderPath(En­vironment.Spe­cialFolder.Ap­plicationData), "Diar");
if (!Directory.E­xists(cesta))
Directory.Cre­ateDirectory(ces­ta);
try
{
using (StreamReader sr = new StreamReader(Pat­h.Combine(ces­ta, "Ukoly.cvs")))
{
Ukoly.Clear();
string s;
while ((s = sr.ReadLine()) != null)
{
string[] rozdeleno = s.Split(';');
if (rozdeleno.Length == 3)
{
DateTime DT = DateTime.Parse(roz­deleno[2]);
string TX = rozdeleno[0];
switch (rozdeleno[1])
{
case "Mala":
PridejUkol(DT, TX, Ukol.Dulezitos­t.Mala);
break;
case "Stredni":
PridejUkol(DT, TX, Ukol.Dulezitos­t.Mala);
break;
case "Velka":
PridejUkol(DT, TX, Ukol.Dulezitos­t.Mala);
break;
default:
throw new Exception("SOUBOR POSKOZEN");
}
}

}
}
using (StreamReader sr = new StreamReader(Pat­h.Combine(ces­ta, "Zaznamy.cvs")))
{
Zaznamy.Clear();
string s;
while ((s = sr.ReadLine()) != null)
{
string[] rozdeleno = s.Split(';');
PridejZaznam(roz­deleno[0], DateTime.Parse(roz­deleno[1]), DateTime.Parse(roz­deleno[2]));
}
}
}
catch (Exception ex)
{
throw new Exception("Ne­podařilo se načíst Ukoly a Zaznamy: " + ex.Message + ex.Source );
}
}

nemá někdo nějaké nápady? Předem děkuji.

Odpovědět
7.8.2017 8:17
#c#
Avatar
zelvicek
Člen
Avatar
zelvicek:7.8.2017 8:25
  1. Zajímavá informace. Ale moc bych se tím nechlubil.
  2. Je nějaký důvod, proč neuvádíš informace získané při debugu? Nedáš ani vzorek dat a my to tu máme věštit...
  3. Předpokládám, že problém je v metodě "Nacti". Spusť si ji v debugu a chyba se ukáže sama. Pokud to už máž náhodou v produkci, udělej si logger.
 
Nahoru Odpovědět
7.8.2017 8:25
Avatar
Honza Rada
Člen
Avatar
Honza Rada:7.8.2017 9:00

odstaranil jsem podmínky a našel chybu v načtení zaznamů , ale stačilo zkontrolovat jestli má pole velikost 3 prvků že mě to nenapadlo dříve

Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět
7.8.2017 9:00
#c#
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 3 zpráv z 3.