Hogyan célszerű (szokás) adatokat menteni egy egyszerű
C/C++ programban?
Figyelt kérdés
Kezdetben van egy adatstruktúrám, ami így néz ki: int szám, string név, int irányatószám. Azt szeretném, hogy egy csomó ilyen struktúrát (egyedet) eltudjak tárolni, és ezekből majd számításokat szeretnék végezni, amit meg kiír txt-be vagy pdf-be a programom. Ehhez a bevitt egyedeteket, hogy lenne érdemes eltárolnom? Arra gondoltam, hogy ezt a struktúrás formát valahova eltárolnám és onnan olvasná ki a programom az összes újraindításnál, illetve, olyankor is, amikor valamilyen számolást generálnék le.
2019. dec. 8. 21:38
1/8 anonim válasza:
sqlite, ha sok módosítást kell végezni, bonyolultabbak a dolgok, számít a gyorsaság, json, ha egyszerűbb dolgokról van szó, kevés a módosítás
2019. dec. 8. 21:48
Hasznos számodra ez a válasz?
2/8 A kérdező kommentje:
Kb. 100 rekordot is kell az adatbázis? Esetleg nem jó ötlet az, hogy bináris fájlban tárolja az adatokat?
2019. dec. 8. 22:26
3/8 anonim válasza:
De, jó ötlet.
Vagy bináris, vagy plain text formátumú file neked bőven megfelel. Még ezer, kétezer rekord esetén is.
2019. dec. 8. 23:21
Hasznos számodra ez a válasz?
4/8 A kérdező kommentje:
És a fölött miért nem elég már?
2019. dec. 8. 23:31
5/8 anonim válasza:
#4 Elég, attól függően, hogy mire kell. A sima fájlba írás nagyon nagy adatmennyiség mellett is tökéletesen megfelel, ha a felhasználása kimerül abban, hogy sorban végigmész rajta. A probléma ott kezdődik, ha keresni akarsz adatot, nem folytonosan akarsz végigmenni rajta, stb stb. Egy olyan egyszerű feladat, mint mondjuk hogy olvasd ki a 1426. sort roppant kényelmetlenné tud válni, mivel anélkül, hogy az elejétől elkezded ovlasni a fájlt, nem tudod, pontosan hol van a 1426. sor, tehát végig kell olvasnod az egész fájlt, hogy azt az egy elemet megtaláld. Erre megoldást nyújt, ha fix méretűek a soraid, tehát számolni lehet azzal, hogy minden sor adat pl 64 bájton van tárolva, és így rögtön arra a pontra tudsz ugrani, ahol a neked kellő adat található (egyébként az adatbázisok is így tárolják az adatokat, csak sok-sok blokkra szétbontva). Bármi ami ennél komplexebb műveleteket igényel már adatbázisért kiált.
2019. dec. 9. 00:54
Hasznos számodra ez a válasz?
6/8 anonim válasza:
Afölött is elég. Nem is állítottam ennek ellenkezőjét.
Az adatbáziskezelőnek akkor van értelme, ha az adatokon olyasféle műveleteket szeretnél végezni, amit az alkalmazott adatbáziskezelő támogat, pl. bővítés, szűrés.
Ha csak A..Z beolvasás kell, és az adatokkal való műveleteket te magad kivánod megírni, akkor nincs sükség adatbáziskezelőre.
2019. dec. 9. 00:55
Hasznos számodra ez a válasz?
7/8 anonim válasza:
Ha kicsit barkács lelkületű vagy, akkor csinálhatsz rekordos szervezésű fájlt, tehát egy rekord (sor) és az abban lévő mezők is fix méretűek.
Akár lehet hozzá eszkábálni egy egyszerű indexfájlt is valamelyik mezőre, pár egyszerű funkcióval (létrehozás, frissítés, keresés), vagy index nélkül is megoldható a sorrend tartása, pár kompromisszummal.
2019. dec. 9. 14:08
Hasznos számodra ez a válasz?
8/8 anonim válasza:
De ha nincsenek nagy elvárások, a legegyszerűbb talán egy json fájl, a hozzá tartozó függvénykönyvtárral persze.
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!