Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok C-ben txt-fájlban...

Hogyan tudok C-ben txt-fájlban keresni egy megadott szót?

Figyelt kérdés
A lényeg az, hogy egy egyszerű szótárprogramon dolgozom, ami lényegében egy txt fájlban tárolja a szópárokat. A szótár funkcióhoz szükség van keresésre a fájlban, így a bemeneten megkapott szóra kellene megnézni, hogy benne van-e a fájlban és kiíratni azt.

#programozás #keresés #.txt #keresés fájlban
2014. aug. 8. 14:19
1 2
 1/14 iostream ***** válasza:

Ezt a problémát én két részre bontanám.

1. Tudj soronként/szavanként haladni.

2. Tudj egyenlőséget ellenőrizni: ez triviális, strcmp.


Az 1. javaslom, hogy úgy ahogy van nyald be az egész szótárfájlt a memóriába egy kétdimenziós tömbbe vagy valami hasonló adatszerkezetbe, mert biztos, hogy elfér, és sokkal gyorsabb lesz.

2014. aug. 8. 14:28
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:
Értem, vagyis igazából nem teljesen. Le tudnád írni, hogy körülbelül, hogy is lehetne ezt kivitelezni?
2014. aug. 8. 15:19
 3/14 anonim ***** válasza:
Melyik résszel van probléma?
2014. aug. 8. 15:21
Hasznos számodra ez a válasz?
 4/14 iostream ***** válasza:

1. Beolvasod az EGÉSZ fájlt a memóriába.

1.1. Megállapítod, hogy mekkora a fájl (google a barátod, C get file size)

1.2. Foglalsz egy akkora tömböt a memóriában (malloc)

1.3. fread

2. Végigmész a tömbön, megszámolod hány újsor karakter van benne.

3. Foglalsz egy ekkora tömböt, aminek a típusa egy struct, amiben két char* van.

4. Végigmész mégegyszer az eredeti tömbön, és minden újsor után (meg persze a legelején) beraksz a második tömbbe egy új elemet, és ennek az új elemnek a char*-jait beállítod a szópár elemeire: az egyik közvetlenül az újsor után lesz, a másik meg az elválasztókarakter után (azt te tudod, mi).

2014. aug. 8. 15:34
Hasznos számodra ez a válasz?
 5/14 A kérdező kommentje:
Oké, az első három pont világos, de a negyedik még mindig eléggé zavaros. Nem értem ott mit kellene csinálnom. (Bocs hogy nagyon le kell egyszerűsítened, de eléggé nehézkes a felfogásom :D )
2014. aug. 8. 15:49
 6/14 iostream ***** válasza:

4.0. Alaphelyzet, hogy egy sor elején vagyunk az egyik tömbben. Van a másik tömb, annak van egy utolsó "berakott" eleme, ez legyen a i.

4.1. Az i. elem első char*-ját beállítjuk arra, ahol most tartunk a tömbben.

4.2. Elmegyünk a szeparátor karakter utánig.

4.3. Az i. elem második char*-ját beállítjuk arra, ahol most tartunk a tömbben.

4.4. Elmegyünk az újsor karakter utánig.

4.5. i-t megnöveljük eggyel.

4.6. Visszatérünk 4.0-ra.

2014. aug. 8. 16:23
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
Mi lenne, ha XML fájlban csinálnád?
2014. aug. 8. 19:38
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
Az XML-t szerintem hagyd, ez most nem arra irányult szerintem.
2014. aug. 8. 20:10
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
Szótár adatszerkezete kicsit jobban átlátható volna vele, persze én most a százezres szavas szótárról beszélek.
2014. aug. 8. 21:10
Hasznos számodra ez a válasz?
 10/14 SimkoL ***** válasza:
'százezres szavas szótárról beszélek.' Gyere picit lejjebb :)
2014. aug. 8. 21:40
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!