C++ subor

Programovacie jazyky, rady, poradňa...
Paragon
Medium Star
Medium Star
Príspevky: 349
Registrovaný: 16 nov 2012, 20:14

C++ subor

Príspevok od používateľa Paragon »

Potreboval by som zistiť, aký je najlepší spôsob čítania súboru (.txt/.bin). Používal som fstream, len neviem, ako sa dá nastaviť napr. na 5. riadok textu, ak sa to dá a neviem, ako sa dá vymazať určitý riadok súboru. Dik za rady
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: C++ subor

Príspevok od používateľa BX »

Operačný systém vie so súborom pracovať len tým "klasickým C-čkovským" prístupom. Tzn. nejaký ten open, write, read, seed a close.
Všetko zložitejšie sa robí pomocou týchto operácií a vieš si to jednoducho spraviť aj sám. fstream ti vie pomôcť v načítavaní riadkov, takže vytiahnuť piaty riadok nie je problém. Zmazať riadok zo súboru je už trocha horšie. Predstav si to ako prácu s polom - ako vymažeš 10. prvok v 20 prvkovom poli? A tak nejako je to aj so súborom.

Ak na internete nájdeš nejakú knižnicu, ktorá ti s týmto pomôže, tak prosím. Ale trochu o takej pochybujem, na to boli vytvorené databáze (Teda ak je to naozaj veľký súbor, ktorý nedáš do pamäte)
Paragon
Medium Star
Medium Star
Príspevky: 349
Registrovaný: 16 nov 2012, 20:14

Re: C++ subor

Príspevok od používateľa Paragon »

No povedzme, že sa dostanem na 5. riadok, tento chcem vymazať. Napadá ma len, že by sa dalo dať aby ho program ignoroval, ale vymazať? Hm, jedine pri prepise do ďalšieho súboru, čo nechcem.
A ako funguje get pointer - keď napr. fstreamom načítam 4 riadky a skočí na 5. a použijem vypisovaciu metódu tak mi píše na 5.? Inak dik
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: C++ subor

Príspevok od používateľa BX »

No zmazať buď prepisom do nového, alebo riadok prepísať nasledujúcim, ten nasledujúcim a tak ďalej až do EOF. Inak to žial asi nepôjde (alebo ma tu niekto poučí?)
Príp. celý fajl strčíš do pamäte, tam s tým robíš normálne ako so stringom a potom ho napcháš späť do súboru.

A aké get pointer?
Paragon
Medium Star
Medium Star
Príspevky: 349
Registrovaný: 16 nov 2012, 20:14

Re: C++ subor

Príspevok od používateľa Paragon »

BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: C++ subor

Príspevok od používateľa BX »

Súbor sa normálne číta po znakoch. tellg ti povie, na ktorej pozícií(znaku) práve si (normálny int). Na začiatku si na nule(resp. ios::beg), na konci si na ios::end.
Napísať odpoveď