C++ subor
C++ subor
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
Re: C++ subor
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)
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)
Re: C++ subor
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
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
Re: C++ subor
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?
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?
Re: C++ subor
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.