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
Itt a szöveges tömbbe történő beolvasás is.
Azt tudom, hogy eljárást (vagy függvényt) kellene hívogatni, ellenőrizendő a kimaradt adatokat...
"de szövegfájlból időnként hiányoznak a megfelelő adatok, ezért szekvenciális olvasással nem sokra megyek."
Ez számomra nem értelmezhető. Mi az, hogy időnként hiányoznak adatok?
Vagy szövegfile-ként, vagy binárisként el tudod menteni a rekordokat, csak egy szeparátor karakter kell, amely elválasztja az egyik rekordot a másiktól és egy másik szeparátor, ami a rekord adatait választja el egymástól.
Hát ez így [link]
elég kezdetleges.
- Definiálsz egy rekordot, amely tartalmazza mindazokat, amelyeket te file formátumként határoztál meg.
- A rekordokat kíírod olyan formán, hogy 1-1 rekord legyen 1-1 sor. A rekordmezőket pedig elválasztod mondjuk a ',' karakterrel.
- A beolvasást (adattömb feltöltését) így lehet readln-nal egyszerűsíteni.
- Az adatbevitelnél ki kell zárni a szeparátor karaktert (',').
- Javallott, hogy legyen a rekordoknak azonosítójuk is. Mondjuk sorszám.
Hiába olvasok sorban, ha a szövegfájlból cégeknél hiányoznak adatok.
Cégnév:
Valami cég
Cím:
1111 Budapest,
Tel:
011
Cég:
Tehát jön a másik cég és nincs se tevékenység se terület.
Olyan is van ahol nincs telefonszám se csak cégnév és cím
utána újabb kezdődik a
Cég:
kulcsszóval.
Adatok hiánya a szövegfájlbólezt jelenti.
"Pascal-t ismerem csak."
Ha ismernéd, már rég megcsináltad volna.
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!