Kezdőoldal » Számítástechnika » Programozás » Mi a megszokott eljárás arra,...

Mi a megszokott eljárás arra, ha egy adott fájlból beolvasott adatokra épül az egész program, rengeteg metódussal?

Figyelt kérdés

Ha a fájl sérült/hiányzik/hozzáférés megtagadva stb, akkor nem tudom kinyerni belőle az adatokat és ezáltal minden további művelet értelmetlen.

Egyelőre megoldottam úgy, hogy minden egyes metódus (ahol kell, metódushívás is) feltételvizsgálattal indít, hogy létezik-e a szóban forgó adat. Így azonban biztosan nem jó.


2019. jún. 21. 19:10
1 2 3 4 5
 21/45 anonim ***** válasza:
A beolvasott fájl feldolgozása közben is keletkezhet kivétel (pl. json parzolás közben stb).
2019. jún. 22. 20:16
Hasznos számodra ez a válasz?
 22/45 A kérdező kommentje:
Try-catch-ben van a letöltés és a beolvasás is (fentebb utaltam rá), de ha kivétel történik, akkor üres lesz a lista. Ha nem történik kivétel, akkor valószínűleg gond nélkül továbbengedhető a lista.
2019. jún. 22. 20:43
 23/45 tabaki ***** válasza:

@#21:

Persze, hogy igazad van, de ne vesszünk már el a részletekben. Nálam nagyobb fantáziával bizonyára lehet még hasonlókat találni, de nem ez a lényeg, hanem az, hogy ezek a programon belül vannak, a main vagy a gombkezelő metódus belefoglalása számomra értelmezhetetlen cél.


@Kérdező:

Nem tudjuk, mit művelsz, ha jól látom, még azt sem árultad el, milyen nyelvről van szó. Ezek után homályban marad az is, hogy miféle listáról beszélsz. Kivétel esetén hibaüzenettel leáll a program, a felszabadított kellékei diffundálnak az Univerzumba, és annyi. Ha viszont sikerült a beolvasás és ellenőrzés, akkor az adatok pont ott vannak, ahol lenniük kell, és foglalkozhat velük az érdemi tevékenységet végző rész.

2019. jún. 22. 21:00
Hasznos számodra ez a válasz?
 24/45 A kérdező kommentje:

A legegyszerűbb az lenne, ha hagynám, hogy kivételt dobjon és elszálljon az egész, de ez később egy, már meglevő grafikus programom extra része lenne és annak nem kellene elszállnia....

Egyszerűen, amikor megnyomják a gombot, ha nem sikerült a letöltés/kiíratás, írja ki, hogy nincs adat és punkt.


Fentebb leírtam, hogy mit művelek. ;)

2019. jún. 23. 06:32
 25/45 tabaki ***** válasza:

Azért a szabályos kilépést ne mossuk már össze az elszállással... Egyébként meg eddig arról volt szó, hogy adatok nélkül működésképtelen a program, értelmetlen a futtatása. Ha ez csak egy leágazás, akkor is dettó, azzal a különbséggel, hogy nem leáll, hanem a hibaüzenet után bármiféle cselekvés nélkül visszatér a főprogramba, oszt' jónapot. Pontosan, ahogy az imént felvázoltad.


„Fentebb leírtam, hogy mit művelek. ;)”

Ebben mi a vicces? Hogy nem írtad le?

2019. jún. 23. 07:27
Hasznos számodra ez a válasz?
 26/45 A kérdező kommentje:
Pontosan az a kérdés, hogy ezt hogyan csináljam meg. :D
2019. jún. 23. 09:28
 27/45 A kérdező kommentje:

Hogy mit művelek: #13 kommentem.


Pszeudokód-jellegű valamihez minek programozási nyelv?

2019. jún. 23. 09:31
 28/45 anonim ***** válasza:

#27 Mert bármennyire is beszédes a pszeudokód, az nem fog lefutni a gépeden, egy konkrét nyelven írt implementáció fog, aminek megvannak a saját képességei, ileltve hiányosságai. Ezért nem árt tudni, milyen nyelven íródik a dolog.


Bár sokat valóban nem számít, mert alap vezérlési szerkezeteket kell csak használni, amit bármely használtabb nyelv támogat. Kicsit meglep, hogy még mindig rójuk a köröket, mert többször le lett írva a megoldás:


A program első része a fájl letöltése/beolvasása. A program második része az adatokkal való machinálás. A program második részének csak akkor kell lefutnia, ha az első rész sikeres volt. Ergo, ha az első rész nem sikeres (try-catch blokk pl segít ebben), akkor egyszerűen visszatérsz a függvényből valamilyen sikertelen értékkel, és a program második részét nem futtatod le. Mi okoz ebben problémát? Hogy sok metódust kell meghívni, és nem akarsz egy hosszú if blokkot? Akkor szervezd ki egy külön függvénybe, és akkor egyetlen függvényhívás van benne. Vagy egy osztályba. Kombináld össze a végrehajtandó műveleteket egyetlen metódushívás alá. És akkor máris jobban fog kinézni.

2019. jún. 23. 11:40
Hasznos számodra ez a válasz?
 29/45 tabaki ***** válasza:

@#27:

„Hogy mit művelek: #13 kommentem.”

Hát, nem. A #13-ból az égegyadta világon semmi nem derül ki arról, hogy miért nem töltött el elégedettséggel mindjárt az első válasz, vagy legeslegkésőbb a saját #4 hozzászólásod. Teljességgel mindegy, hogy milyen terjedelemben kerülgeted a magyarázatot, nem lesz világosabb, hogy mi a baj a magad és mások által is többször leírt egyszerű megoldással.


„Pszeudokód-jellegű valamihez minek programozási nyelv?”

Például azért, hogy valaki irgalomból írhasson neked egy működő vakkódot, amin tesztelheted, mit képzeltél másképp. Bár az se lett volna rossz, ha te kedveskedel valami próbálkozásoddal, amit gatyába lehet rázni. Egyébként egyre kevésbé tűnik elhamarkodott következtetésnek, hogy a pszeudokód amúgy sem erős oldalad, ha a „sikeres beolvasás esetén ezt tedd, egyébként meg amazt” lehetőséghalmaz áttekintése nehézséget okoz.

2019. jún. 23. 11:43
Hasznos számodra ez a válasz?
 30/45 A kérdező kommentje:

Egy metódus a fájl letöltése, ha a fájl létezik, másik metódus letölti, ha van adat, harmadik átrakja másik tárolóba.

Ha volt adat, egy másik osztály számításokat végez vele.

2019. jún. 23. 11:51
1 2 3 4 5

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!