• POČETNA
  • G Drive
  • Progr 2
  • more...
    • Spacer
      • Spacer
      • Vežbe 17.11.2025​

      • ​Rad sa Fajlovima





      • ​
      • OVAKO
        Za rad sa fajlovima možemo koristiti klase fstream, ofstream i ifstream iz File Stream klase.

        www.w3schools.com/cpp/cpp_ref_fstream.asp

        https://www.geeksforgeeks.org/cpp/file-system-library-in-cpp-17/
        Na linku iznad ima primera koda za rad sa fajlovima.

        Zadatak:

        Instalirati WinRar program sa zvanicnog sajta ako ga već nemate instaliranog na računaru.

        Dodati lokaciju WinRar programa u sistemski path. C:\Program Files\WinRAR

        Restartovati računar i otvoriti cmd. U isti ukucati komande rar i unrar i ako je sve
        lepo odradjeno trebalo bi da ova dva programa sada daju output sa listom svih komandi koje
        je moguće koristiti.

        Primeri komandi

        rar a -r archive.rar *
        rar a -afzip -r archive.zip *
        // ova komanda kreira zip arhivu 
        rar a -r "C:\Backup\fullbackup.rar" "C:\Data\*"
        rar a -afzip -r "C:\Backup\fullbackup.zip" "C:\Data\*"

        rar a -r "C:\Backup\fullbackup.rar" "C:\Data\*"


        Zadaci:


        1. Kreirati tekstualni fajl i upisati nekoliko redova teksta.
        2. Pročitati ceo fajl i ispisati sadržaj na ekran.
        Pročitati fajl liniju po liniju i numerisati svaku liniju.
        3. Prebrojati broj redova u fajlu.
        Prebrojati broj reči u fajlu.
        Prebrojati broj karaktera u fajlu.
        4. Dodati tekst na kraj postojećeg fajla bez brisanja sadržaja.
        Kreirati novi fajl koji sadrži samo velike verzije slova iz originalnog fajla.
        Zameniti određenu reč u fajlu drugom rečju i sačuvati rezultat u novom fajlu.
        5. Obrisati prazne linije iz fajla.
        Sortirati linije u fajlu po abecedi i upisati rezultat u drugi fajl.
        Pronaći najdužu liniju u fajlu.
        Pronaći najkraću liniju u fajlu.
        6. Spojiti sadržaj dva fajla u treći fajl.
        Podeliti fajl na dva dela: prvi sadrži prvih N linija, drugi ostatak.
        Kopirati fajl u drugi direktorijum.
        Premestiti fajl u drugi direktorijum.
        Proveriti da li fajl postoji pre otvaranja.


        7. Napraviti program koji zipuje sve .txt fajlove iz direktorijuma u jednu ZIP arhivu.
        Napraviti program koji otzipuje samo određeni fajl iz ZIP arhive (bez vađenja celog sadržaja).
        Napraviti program koji spisak fajlova iz ZIP arhive ispisuje na ekran (bez raspakivanja).
        Napraviti program koji dodaje fajl u postojeću ZIP arhivu bez brisanja postojećeg sadržaja.
        Napraviti program koji proverava da li ZIP arhiva sadrži određeni fajl.
        Napraviti program koji kreira ZIP arhivu sa lozinkom (ako je jezik/biblioteka to podržava).
        Napraviti program koji rekurzivno zipuje ceo direktorijum, uključujući poddirektorijume.


        Napisati program koji rekurzivno prolazi kroz direktorijum i sve poddirektorijume i ispisuje listu svih fajlova sa njihovom veličinom.

        Napraviti skriptu koja uzima ekstenziju (npr. .txt) i u zadatom direktorijumu pronalazi sve fajlove te ekstenzije i upisuje njihove putanje u fajl rezultat.txt.

        Napisati program koji upoređuje dva fajla i ispisuje prve razlike po linijama (broj linije i sadržaj obe linije).

        Napraviti program koji prebrojava koliko puta se neka reč pojavljuje u svim fajlovima u jednom direktorijumu (npr. u svim .log fajlovima).

        Napisati program koji pravi backup fajla tako što kreira kopiju sa dodatkom datuma i vremena u nazivu (npr. podatak_2025-11-16_153012.txt).

        Napraviti program koji spaja sve fajlove iz direktorijuma u jedan (npr. sve .txt fajlove spojiti u sve.txt), uz ubacivanje separatora između sadržaja fajlova.

        Napisati program koji prati veličinu log fajla i kada pređe određeni limit (npr. 5 MB), automatski pravi novi fajl (log1.txt, log2.txt, …).

        Napraviti program koji čita binarni fajl i ispisuje njegov sadržaj u heksadekadnom formatu (hexdump stil).

        Napisati program koji upoređuje sadržaj dva direktorijuma i izbacuje listu fajlova koji se razlikuju (po imenima ili veličini).

        Napraviti program koji traži i briše duplirane fajlove (ista veličina + isti hash sadržaja) u zadatom direktorijumu.

        8. Napisati skriptu koja menja ekstenziju svim fajlovima u direktorijumu (npr. .txt → .md).

        Napisati program koji u CSV fajlu čita podatke, filtrira redove po nekom uslovu (npr. vrednost u koloni > X) i rezultate upisuje u novi CSV fajl.

        Napraviti program koji od XML ili JSON fajla pravi “lep” formatiran izlaz (pretty print) sa uvučenim redovima i gašenjem u slučaju nevažeće strukture.

        Napisati program koji računa hash (npr. MD5 ili SHA-256) za svaki fajl u direktorijumu i rezultate čuva u fajlu hashes.txt.

        Napraviti program koji simulira “korpu za smeće”: umesto direktnog brisanja fajla, premesti ga u poseban direktorijum Trash sa informacijom o originalnoj lokaciji.

        Napisati program koji čita veliki fajl u blokovima (chunk-ovima) umesto odjednom (npr. po 4 KB) i prebrojava koliko se puta pojavljuje neki string, vodeći računa da se string može “prelomiti” između dva bloka.

        Napraviti program koji pravi indeks pojmova: za zadati fajl napravi mapu reč → lista brojeva linija na kojima se pojavljuje, i čuva to u posebnom fajlu.

        Napisati program koji prati fajl u realnom vremenu (tail, kao tail -f u Linuxu) i ispisuje nove linije čim se upišu u fajl.

        Napraviti program koji kompresuje fajl (npr. u ZIP ili neki drugi format podržan u izabranom jeziku) i pravi njegovu dekompresiju u drugi direktorijum.

        Napisati program koji automatski pravi dnevne log fajlove: sve poruke od danas idu u log_YYYY-MM-DD.txt, a sutradan se kreira novi fajl, bez ručnog menjanja naziva.


        ​


    • Spacer
  • www.d96rsd.com
    ©  Dušan Ružić • Built with Weebly.
    AVMSS Kruševac | Odsek tehničko-tehnoloških studija Kruševac