Szövegfájl-feldolgozással kapcsolatos kérdés? (bővebben lent)
Adott egy szöveges fájl, amelyet rekordokba szeretnék beolvasni, de szövegfájlból időnként hiányoznak a megfelelő adatok, ezért szekvenciális olvasással nem sokra megyek.
Sima tömbbe (nem rekordosba mint programom esetén) be lehetne olvasni, de a továbblépést illetően ott se lenne ötletem. :-(
Fájlformátum a következő:
Cégnév:
<cégnév>
Cím:
<cég címe>
Telefonszám:
<cég telefonszáma>
Cég tevékenysége:
<tevékenység leírása, van hogy két sorban>
Terület:
<a cég működési területe, általában egy soros leírás>
Miként lehet ezt rekordokba olvasni úgy, hogy bármilyen hiányt felismerjen a fájlból beolvasást végző program és ugorjon a következő cégre, ne legyen semmiféle csúszás?
A kulcsszavak rendben vannak a fájlban (Cégnév: Cím: stb), azok mindig jelzik: "milyen adat következik", ahol nincs adat, vagy hiányos, esetleg kimaradt valami adott cégnél, azt nem jelzi semmi, ismét jön a Cég: kulcsszó és egy következőnek az adatai.
Van ahol csak név és cím van, másik két adat hiányzik.
Pascal nyelven tudok csak, de bármilyen nyelven érdekelne megoldás, ha le tudom fordítani gépemen úgy, hogy működjön, vagy ha valaki linkel binárist.
Ha megoldást nem szeretnétek írni, leírnátok szövegesen: mit kellene tennem, illetve, ti hogy oldanátok meg?
A beolvasási-próbálkozással kapcsolatos program (rekordokba):
https://hastebin.com/enokulitoj.pas
Milyen utasításokat használjak?
Szerintem egyébként nem pontosan érted a problémát.
Nem tudom, lehet, hogy nem értem a problémát teljes mélységében, de nekem ez nagyon egyszerűnek tűnik. Az adatok hash szerűen kulcs-érték párokat alkotnak, megengedve, hogy bizonyos értékek, esetleg kulcsok hiányozzanak.
Első lépésként azt csinálnám, hogy a kulcsokból egy listát készítenék, hogy felismerje a program, hogy most egy kulcsszó jön, vagy érték.
Kezdetben minden kulcshoz rendelnék valami default értéket ("NA"). Ha beolvasol egy sort, és az egy kulcs, akkor tudni fogod, hogy a következő sorban melyik kulcshoz tartozó értéket kell eltárolni. Kivéve, ha a következő sor is egy kulcs, mert akkor az előző kulcshoz marad hozzárendelve a default érték. Ha több sorban van kifejtve pl. a cég tevékenysége, az sem baj, mert amíg nincs egy új kulcs, addig ugyan ahhoz a kulcshoz tartozó értéket olvasod.
Ha az olvasásban elérsz a következő cégnév kulcshoz, akkor tudod, hogy egy rekordnak vége, és jön a következő: adatokat elmented vagy adatbázisba rendezed, majd újra inicializálod a kulcshoz tartozó default értékeket. Ezzel a stratégiával nem lesz probléma a hiányzó érték.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!