Kezdőoldal » Számítástechnika » Programozás » Szövegfájl-feldolgozással...

Szövegfájl-feldolgozással kapcsolatos kérdés? (bővebben lent)

Figyelt kérdés

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



2018. márc. 28. 17:55
1 2
 11/14 A kérdező kommentje:

Milyen utasításokat használjak?

Szerintem egyébként nem pontosan érted a problémát.

2018. márc. 28. 20:32
 12/14 A kérdező kommentje:
Rekordtörlés nem kell, csak normálisan olvassa be.
2018. márc. 28. 20:33
 13/14 anonim ***** válasza:
47%
Nem értem mi ebben a probléma soronként beolvasod a fájlt kettessével. Ha az első sor az, hogy "Cég:", akkor az jelzi, hogy új rekord jön, növeled az indexet, az adatok a következő "Cég:" sorig ahhoz tartoznak.
2018. márc. 28. 22:43
Hasznos számodra ez a válasz?
 14/14 anonim ***** válasza:

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.

2018. márc. 29. 21:39
Hasznos számodra ez a válasz?
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!