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
 1/14 A kérdező kommentje:

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...

[link]

2018. márc. 28. 18:23
 2/14 anonim ***** válasza:

"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.

2018. márc. 28. 19:28
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:

Hát ez így [link]

elég kezdetleges.

2018. márc. 28. 19:30
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:

- 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.

2018. márc. 28. 19:37
Hasznos számodra ez a válasz?
 5/14 A kérdező kommentje:

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.

2018. márc. 28. 19:45
 6/14 A kérdező kommentje:
Rekordokat örömmel elválasztanám , karakterrel csak nem tudom itt is olvasásnál a csúszás bejátszik ugyanúgy, a fájl pedig elég nagy ahhoz hogy kézzel oldjam ezt meg.
2018. márc. 28. 19:47
 7/14 anonim ***** válasza:
Minták felismeréséhez érdemes megismerkedni a reguláris kifejezésekkel. Én valószínűleg azzal próbálkoznék.
2018. márc. 28. 20:02
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:
Pascal-t ismerem csak.
2018. márc. 28. 20:05
 9/14 anonim ***** válasza:

"Pascal-t ismerem csak."


Ha ismernéd, már rég megcsináltad volna.

2018. márc. 28. 20:25
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
6000 HUF, hibatűréssel, adatbevitellel, rekord törlési lehetőséggel.
2018. márc. 28. 20:31
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!