Ötlet, hogy mért nem adja a fájl utolsó sorát a listához? (c#)
A 2017 októberi informatikai érettségijéről van szó programozás résznél. A Feladatsor már "teljesen" készen van, csupán annyi a gond, hogy a fájl utolsó sorát nem adja hozzá a Tanulok listához, emiatt több feladatnál is (pl a2-es, 6-os) kevesebb érték jön ki. Csak a fura az, hogy beolvasni beolvassa, mivel mikor a StreamReader-ben a hozzáadás történik a Tanulok listához és utána rögvest kiíratom akkor ott van, VISZONT mikor már a konstruktoron kívül egy metódussal (pl 2.feladat) egy foreach-csel kiíratnám a összes elemet akkor már nincs ott, ez látszik a db számon is mivel 1-gyel kevesebbet hoz (139 helyett csak 138-cat). Mi lehet a gond?
Az a baj, hogy a Hianyzasok listába csak akkor rakod bele, ha # jellel kezdődik a sor (ekkor beteszed a lsitába az előző tanuló listát). Viszont az utolsó lista után nincs még egy # kezdetű sor. Ezért a ciklus után (miután elfogyott a fájl), az utolsó tanuló listát még hozzá kell adnod a hiányzásokhoz.
Még 2 észrevétel:
1. az első # kezdetű sort külön kéne kezelned, mert ekkor nincs előző tanuló listád, amit beleteszel a hiányzások listába
2. a 64. és 65. sor fel van cserélve, vagy mondom másképpen: amikor a következő # kezdetű sornál tartasz, akkor nem az abban lévő dátum az addig gyűjtött hiányzások dátuma, hanem a korábbi!
Tehát valahogy így kellene feldolgozni, ha # kezdetű sor van:
- ha nem üres a tanuló lista, akkor az előző dátummal beteszed a hiányzások listájába
- létrehozol egy üres tanuló listát
- elmented a dátumot (ezzel lesz meg az előző dátum a következő # sornál)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!