Kezdőoldal » Számítástechnika » Programozás » C# hiba, egyszerű fájlbeolvasá...

C# hiba, egyszerű fájlbeolvasás, mégsem működik? De miért?

Figyelt kérdés

A hiba:

System.NullReferenceException: 'Object reference not set to an instance of an object.'


A kód:



public struct telkek

{

public string[] utcaresz;

public string[] meret;

public string[] kerites;

}

static void Main(string[] args)

{

StreamReader sr = new StreamReader("kerites.txt");

telkek telkek = new telkek();

int i = 0;


while (!sr.EndOfStream)

{

string[] sor = sr.ReadLine().Split(' ');


telkek.utcaresz[i] = Convert.ToString(sor[0]);

telkek.meret[i] = Convert.ToString(sor[1]);

telkek.kerites[i] = Convert.ToString(sor[2]);

i++;

}

Console.ReadKey();

}



(az elején ott van a using.System.IO;)



Gyakorolnom kéne, de már ezen elbukok és nem tudom, mi a baja. Neten nem találtam rá megoldást. A telkek.meret[i] = blablabla résznél hozza fel ezt a hibát. A feladat a 2018-as emelt feladat.


2020. márc. 30. 15:53
1 2
 1/15 A kérdező kommentje:
telkek.utcaresz[i] = Convert.ToString(sor[0]); sor után mindenképp kihozza ezt a hibát...
2020. márc. 30. 16:04
 2/15 A kérdező kommentje:

string[] sor = sr.ReadLine().Split(' ');

Console.WriteLine(sor[0]);

Console.WriteLine(sor[1]);

telkek.utcaresz[i] = Convert.ToString(sor[0]);


Console.WriteLine(sor[0]);

Console.WriteLine(sor[1]);



az első két writeline kiadja ami kell, a beolvasás utáni 2 sor már a hibát adja.

2020. márc. 30. 16:06
 3/15 anonim ***** válasza:
53%
Én nem értek C#-hoz, de nem kéne inicializálni a tömböket?
2020. márc. 30. 16:38
Hasznos számodra ez a válasz?
 4/15 anonim ***** válasza:
53%

Én sem értek C#-hoz :D

De nem kéne a fájlt megnyitni?

2020. márc. 30. 16:54
Hasznos számodra ez a válasz?
 5/15 anonim ***** válasza:
88%

Igen, a tömböket inicializálni kell használat előtt:

kerites = new string[20]; //20 elemű tömb lesz ebből


De sok gond van még ezzel a kóddal ha nem dob szintaktikai hibát akkor is :D

2020. márc. 30. 17:19
Hasznos számodra ez a válasz?
 6/15 A kérdező kommentje:
Ha nem értetek hozzá, miért tippelgettek?
2020. márc. 30. 18:20
 7/15 A kérdező kommentje:

Én tanulóként segítséget kértem, mert nem értem, mit / miket hibáztam.

Ha itt nem lehet segítséget kérni, elnézést kérek és töröljék a kérdésem.

Nem tudtam, hogy egy értelmes, normálisan feltett kérdésre nem kaphatok értelmes választ.

De kommentjeitekből kiindulva arra tudok következtetni, hogy ti magatok sem tudjátok, mi a problémája a kódnak.

2020. márc. 30. 18:26
 8/15 anonim ***** válasza:
76%

Irónia volt, ne haragudj.

Értünk hozzá.

Akkor elmondjuk értelmesen: ez a kód egy kalap szar

Nincs inizializálva a tömb, nincs a fájl megnyitva, bezárva aztán végképp nincs, és ezektől eltekintve nem is azt csinálja szerintem, amit szeretnél (egyetlen telek adatai lennének csak egy fájlban?)

2020. márc. 30. 18:30
Hasznos számodra ez a válasz?
 9/15 A kérdező kommentje:

Az első sor adataival tud dolgozni. Az első beíratást követően (az a sor, amit be is idéztem fentebb) lesz probléma, ahol kiírja az említett hibát. Tehát, az első sort szépen beolvassa és spliteli a sor nevű tömbbe, azaz a fájl meg van nyitva(szerintem, cáfolj, ha tévedek).

Az említett sor előtt a writeLine-ok ki is írják, ami benne van. Viszont amint a struct-ba íratnám, az első bevitel sikeres, onnantól kezdve viszont hibás.

2020. márc. 30. 18:38
 10/15 A kérdező kommentje:

Az említett hibákat felfogtam, de nem tudom, hogy javítsam ki (mint azt már említettem órákkal ezelőtt).


Nincs kedvem tovább játszani.. Segítesz abban, hogy kijavítsam ezeket a hibákat, hogy megérthessem, mit csesztem el, vagy sem?

2020. márc. 30. 19:04
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!