Diskuze: Načítanie txt súboru, error
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Kdyby sis do toho "catch" nechal vypsat tu chybovou hlášku a ne "tvoji" chybovou hlášku
MessageBox.Show("Súbor sa nepodarilo načítať.", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
, možná by tě to posunulo v hledání problému dál...
dej tam toto
MessageBox.Show(ex.Message, "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
a řekne ti, co mu chybí...
hmm, takže zmena na vysledok.FileName nepomáha lebo tá instancia v
premennej vysledok neexistuje
@Michal díky, nevedel som o tom príkaze ako som písal, zo súbormi som
ešte nejak extra nepracoval.. a píše "Object reference not set to an instance
of an object." ... v každom prípade díky za posun
Denyk si buď z tebe dělá srandu, nebo by si měl doplnit znalosti,
DialogResult rozhodně neobsahuje FileName - původní verze je správně a
chybu máš jinde.
Dej si breakpoint na začátek metody "Nacitaj" a pak si to krokuj a uvidíš,
kde ti to zkolabuje.
Zkus si do messageboxu nechat vypsat úplnou cestu k tomu otevíranému souboru, podle mě program neví, kde má ten soubor najít...
@ostrozan Moje chyba, neuvědomil jsem si to.
@N3ttX Problém nakonec není v řádku
parkovisko.Nacitaj(parkoviskoOpenFileDialog.FileName);
, ale v načítání do arraye. Takhle by to už mělo fungovat:
public void Nacitaj(string cesta)
{
using (StreamReader sr = new StreamReader(cesta))
{
for (int i = 0; i < miesta.GetLength(0); i++)
{
for (int j = 0; j < miesta.GetLength(1); j++)
{
var radek = sr.ReadLine();
if (radek == "1")
{
miesta[i, j] = true;
}
else
{
miesta[i, j] = false;
}
}
}
}
}
Nic ve zlém, ale pokud chceš druhým radit, tak se to nejdřív sám nauč, nebo si svoje rady minimálně ověř - nebo si po sobě přečti cos napsal
Máš tam samozřejmě zas chybu
var radek = sr.ReadLine();
if (radek == "1")
{
miesta[i, j] = true;
}
radek bude mít vždy 15 znaků a tedy nikdy nebude "1" a všechny výsledky budou false
kdybys udělal to co ti radil Michal Štěpánek
s tou hláškou v message boxu , tak bys zjistil, že se pokoušíš zapisovat
hodnotu na neexistující index pole
tvůj problém spočívá v tom, že máš prohozené i a j
místo
miesta[i, j] = true;
dej
miesta[j, i] = true;
Abych ale nebyl nespravedlivý, tak jeho problém s vyhazováním vyjímky jsi vyřešil - tím, že to i a j jsi přehodil ve for cyklech
jen ten chybějící index v podmínce u proměnné radek to pokazil
nefunguje ani prehodenie [i, j] na [j, i].. neviem, ked to mám s I prvým tak mi nespraví nič a práve sa deje to že mi to neuloží do žiadneho pole.. a ked ich prehodím tak mi zase vypíše index was outside the bounds of the array.. takže netuším a nechápem ten chýbajúci index..
Zobrazeno 14 zpráv z 14.