Section author: Vedran Miletić, Vanja Slavuj, Sanja Pavkov

Rad s tekstualnim datotekama

Kodiranje znakova

  • kodiranje znakova je zapis znakova nizom 0 i 1

  • Unicode je industrijski standard kodiranja koji omogućuje kodiranje većinu postojećih znakova

  • tekstualna datoteka je datoteka koja sadrži čisti tekst kodiran nekim od kodiranja

    • iako datoteke mogu biti tekstualnog oblika bez obzira na ekstenziju, radi lakšeg snalaženja, označavat ćemo ih ekstenzijom .txt, primjerice file1.txt

  • locale ispisuje trenutne lokalne i regionalne postavke operacijskog sustava

    • en_US.UTF-8 (zadane), hr_HR.UTF-8 (naše), en_DK.UTF-8 (često korištene, donekle hakeraj; Danske regionalne i lokalne postavke slične našima)

  • locale -m ispisuje popis podržanih kodiranja na sustavu

    • osim Unicode kodiranja, ISO-8859-2 je kodiranje koje sadrži Hrvatske znakove

Dodatni zadatak

Naredba iconv se koristi se za konverziju između različitih kodiranja. Mi ćemo od sada nadalje koristiti samo UTF-8, ali se u praksi često sreću datoteke kodirane i drugim kodnim stranicama.

Proučite man stranicu naredbe iconv, a zatim je isprobajte kod prebacivanja datoteke iz UTF-8 kodiranja u UTF-7, UTF-16, ISO-8859-2.

Uređivači teksta

  • prije grafičkih sučelja, programi bili dizajnirani na način da koriste plain text

  • programi za rad s tekstom u komandnoj liniji nisu programi za obradu teksta (engl. word processors) nego uređivači teksta (engl. text editors )

  • GNU Emacs, naredba emacs

    • iznimno moćan uređivač teksta, velike mogućnost prilagodbe i proširenja funkcionalnosti

    • podržava bojenje sintakse, kompletiranje naredbi i automatsko uvlačenje koda za desetke različitih programskih jezika

    • podržava UTF-8 i koristi ga kao zadani ako je on zadan sustavskim lokalnim i regionalnim postavkama; više detalja o kodiranjima u Emacsu

    • ne sadrži modove, za razliku od popularnog Vim-a

    • xkcd: Real Programmers

Zadatak

  • Proučite vodič za Emacs od Stanfordovog Centra za računalna istraživanja u glazbi i akustici ili papir s Emacsovim naredbama. Isprobajte iduću funkcionalnost:

    • open, close, read, save

    • mark, copy, cut, paste

    • search forward, search backward

  • Napravite u svom kućnom direktoriju datoteku mjeseci.txt i u nju upišite nazive mjeseci tako da je svaki naziv u svome retku.

  • Kopirajte sav sadržaj i zalijepite ga na kraj datoteke tri puta.

  • Sačuvajte Vašu datoteku pod nazivom mjeseci3.txt.

  • Dodajte svoje ime i prezime na kraj datoteke i sačuvajte Vaš trenutni rad.

  • Odaberite dvije stvorene kopije sadržaja, izrežite ih, a zatim spremite u novu datoteku mjeseci2.txt.

  • Pozicionirajte se u neki redak datoteke mjeseci2.txt i otkrijte broj linije u kojoj se trenutno nalazite.

  • Pronađite u datoteci string anj i zamijenite ga sa rječju ZAMJENA.

Dodatni zadatak

  • Otvorite u Emacsu datoteku nazvanu moj_program.cpp. Uočite u koji način rada (mode) vas postavlja.

  • Unesite kod hello world C++ programa i spremite ga, a zatim ponovno spremite datoteku pod imenom moj_program2.cpp.

  • Otvorite obje datoteke istovremeno i prebacite se iz jedne u drugu.

  • Uočite da Emacs u zadanim postavkama ne vrši bojenje pripadnih zagrada (), odnosno [], odnosno {}, odnosno <>. Pronađite u “Options” način da to uključite.

(Napomena: Vremenom ćemo naučiti kako koristiti program-prevoditelj za prevođenje C++ programa na Linuxu.)

Dodatni zadatak

  • Proučite program Vi IMproved (naredba vim).

Dodatni zadatak

  • Pokrenite GNU nano (naredba nano), koji je vrlo jednostavan uređivač teksta, zamjena za nekoć popularni pico.

  • Isprobajte u GNU nano-u iduću funkcionalnost:

    • ^X -> Exit,

    • ^C -> Cur Pos,

    • ^O -> WriteOut,

    • ^R -> Read File,

    • ^K -> Cut Text i ^U -> UnCut Text,

    • ^W -> Where Is (i varijante ^W^R, ^W^Y, ^W^V, ^W^T).

Ponovimo!

  • Što je kodiranje znakova?

  • Što je UTF-8? A UTF-32?

  • Na što sve utječu lokalne i regionalne postavke sustava?

  • Što je Emacs i čemu služi?