You are on page 1of 6

DATOTEKE - FAJLOVI Fajlovi se koriste za privremeno i trajno uvanje i razmenu podataka.

U zavisnosti od vrste informacije koja se smeta u fajl razlikuju se formati fajlova. Format fajla predstavlja nain organizacije podataka u fajlu. Poznavanje formata je neophodno da bi aplikacija mogla formirati valjan fajl, koji e kasnije neka druga aplikacija proitati. Uitavanje podataka u aplikaciji se, tako e, obavlja prema formatu. Programski jezik ! poznaje dva tipa fajlova, tekstualne i binarne. "a korienje fajlova prvo je potrebno ukljuiti u aplikaciju zaglavlje #stdio.h$. U ovom zaglavlju se nalaze strukture podataka i funkcije koje se koriste za rad sa fajlovima. %snovna struktura koja sadr&i podatke o fajlu je F'(). U svakom izvornom kodu *u koji je ukljuen fajl stdio.h+ mogue je izvriti definiciju pokazivaa datoteke na sledei nain, F'() -pok.dat/ 0orienjem ovog pokazivaa ostvaruje se pristup datoteci.

Otvaranje i zatvaranje datoteke 1vaka datoteka koja se u programu koristi *bilo za itanje ili za upis+ mora da se otvori pre nego to joj se prvi put pristupi. Standardna funkcija za otvaranje datoteke F'() -fopen*char- ime.datoteke, char- modus+ ime.datoteke 2 znakovni niz *konstanta, promenljiva ili izraz koji predstavlja ime datoteke+. 'me se zadaje sa relativnim putem u odnosu na radni direktorijum ili sa apsoulutnim putem do mesta gde je datoteka na disku zapisana.

modus 2 znakovni niz koji pokazuje dozvoljeni nain pristupa datoteci, #r$ 3 itanje iz datoteke

#4$ 3 upis u datoteku *ako datoteka postoji dolazi do brisanja njenog sadr&aja prilikom otvaranja, a ako ne postoji, kreira se+ #a$ 3 dopisivanje novog sadr&aja na kraj datoteke #r5$ 3 itanje i upis #45$3 upis i itanje 3 ako datoteka postoji, brie se njen sadr&aj prilikom otvaranja, #a5$ 3 upis i itanje3 pri otvaranju, pokaziva datoteke se postavlja na kraj datoteke. 671' standard pravi razliku izme u tekstualnih i binarnih datoteka, pa uz oznaku modusa treba dodati 8b9 ukoliko se radi sa binarnom datotekom. Funkcija vraa pokaziva na datoteku koja je otvorena, ili 7U(( ako datoteka nije mogla da bude otvorena. Primer: F'() -pok.dat/ pok.dat : fopen*;datul;,;r;+/ ili, if * * pok.dat : fopen*;datul;,;r; + + :: 7U(( + printf*#uldat nije korektno otvorena<n$+/ Standardna funkcija za zatvaranje datoteke int fclose*F'() -pok.datoteke+ %vom funkcijom se prekida veza koja postoji izme u pokazivaa datoteke i imena datoteke. Pre zatvaranja sadr&aj prihvatne memorije se upisuje u datoteku ukoliko je upis u datoteku dozvoljen. Ukoliko je zatvaranje izvreno uspeno, povratna vrednost ove funkcije je =. itanje i upi podataka Standardna funkcija za itanje jednog znaka (bajta) iz datoteke int fgetc*F'() -pok.dat+

6ko se pre uitavanja znaka dolo do kraja datoteke rezultat funkcije je )%F *simbolika konstanta koja oznaava kraj datoteke *3>+ +. %va konstanta je, tako e, definisana u fajlu stdio.h. Funkcije za upis jednog znaka (bajta) u datoteku int fputc*char c,F'() -pok.dat+ ?ezultat funkcije je upisani znak. Funkcija za itanje jednog reda iz tekstualne datoteke char -fgets*char -s, int ma@br, F'() -pok.dat+ Uitava jedan red *niz znakova do znaka 8<n9+ iz datoteke na koju ukazuje pok.dat. s je niz u koji se smeta uitani red, a ma@b3> je maksimalni broj znakova koji se mogu uitati. Funkcija za upis jednog reda u tekstualnu datoteku char -fputs*char -s, F'() -pok.dat+ Funkcija za formatirano itanje podataka iz tekstualne datoteke int fscanf*F'() -pok.dat,char -format A,argBC+ Funkcija slu&i za itanje podataka iz fajla na koji ukazuje pokazivacFajla. Povratnu vrednost predstavlja broj podataka koje je funkcija uitala u argumente. 6ko se pojavi greka pri uitavanju povratna vrednost je 3>. Parametri: >. pok_dat 2 pokaziva na fajl iz koga treba uitavati podatke. D. format 2 predstavlja niz karaktera koji oznaava nain konverzije *niza karaktera u podatak odgovarajueg tipa+ koji treba primeniti pri uitavanju podataka iz fajla u promenljive zadate kao parametri argument *npr. #Ed$+. %vaj parametar odgovara prvom parametru funkcije !an"#$. F. argument 2 predstavlja promenljivu u koju treba uitati vrednost. Gip ovog argumenta mora odgovarati tipu konverziji naznaenom u parametru format. Ho&e postojati vie parametara argument, s tim da broj argumenata ovog tipa treba da odgovara broju specifikacija konverzija u formatu da ne bi dolo do greke.

Primer: char znak, recAD=B/ int povratna, broj!eo/


double broj?ealan/ FILE -pokFajla/ pokFajla : "open* #Iokument.t@t$, #r$ +/ %%% povratna : " !an"# pokFajla& '(! ( (d (")& znak& re!& *roj+eo& *roj,ea-an $. %%% povratna : "!-o e* pokFajla +/

Funkcija za formatirani upis podataka u tekstualne datoteke int fprintf*F'() -pok.dat,char -format A,argBC+ Funkcija slu&i za upisivanje podataka u fajl na koji ukazuje pok_dat. Povratna vrednost predstavlja broj podataka koje je funkcija upisala u fajl. 6ko se pojavi greka pri uitavanju povratna vrednost je 3>. Parametri: >. pok_dat 2 pokaziva na fajl iz kojeg treba uitavati podatke. D. format 2 predstavlja niz karaktera koji oznaava nain konverzije *podatka odgovarajueg tipa u niz karaktera+ koji treba primeniti pri upisu podataka u fajl iz promenljivih koje su navedene kao parametri argument *npr. #Ed$+. %vaj parametar odgovara prvom parametru funkcije print"#$. F. argument 2 predstavlja promenljivu iju vrednost treba upisati u fajl. Gip ovog argumenta mora odgovarati tipu konverziji naznaenom u parametru format. Ho&e postojati vie parametara argument, s tim da broj argumenata ovog tipa treba da odgovara broju specifikacija konverzija u formatu da ne bi dolo do greke. Primer: char znak, recAD=B/ int povratna, broj!eo/ double broj?ealan/ FILE -pokFajla>, -pokFajlaD/ pokFajla> : "open* #Iokument>.t@t$, #r$ +/ pokFajlaD : "open* #IokumentD.t@t$, #r$ +/

%%% povratna : " !an"* pokFajla1, #Ec Es Ed Ef$, znak, rec, broj!eo, broj?ealan +/ %%% povratna : "print"# pokFajla2& '(! ( (d (")& znak& re!& *roj+eo& *roj,ea-an $. %%% povratna : "!-o e* pokFajla> +/ povratna : "!-o e* pokFajlaD +/ Funkcija za binarno itanje int fread*void -ulaz, long vel, long br, F'() -uldat+ 'z binarne datoteke na koju ukazuje pok.dat uitava se br podataka veliine vel bajtova i to smeta poev od lokacije na koju ukazuje pokaziva ulaz. Funkcija za binarni upis int f4rite*void -izlaz, long vel, long br,F'() -izdat+ U binarnu datoteku na koju ukazuje pok.dat upisuje se br podataka veliine vel bajtova. 'zlaz je poetna adresa od koje su smeteni podaci koji se prenose u datoteku. Funk!ije za direktan pri tup Ia bi se direktno pristupilo nekom podatku u okviru datoteke, mora se znati njegovo rastojanje u bajtovima od poetka datoteke, kraja datoteke ili od tekue pozicije. Standardna funkcija za pozicioniranje u datoteci int fseek*F'() -pok.dat, ling n, int modus+ pok.dat 3 ukazuje na datoteku u kojoj se vri pozicioniranje, n 3 broj bajtova za koliko se pomera datoteni pokaziva u odnosu na zadatu lokaciju, modus 3 definie u odnosu na koju lokaciju se vri pomeranje, modus:=, pomeranje se vri u odnosu na poetak datoteke, modus:>, pomeranje se vri u odnosu na tekuu poziciju,

modus:D, pomeranje se vri u odnosu na kraj datoteke. Funkcija za pozicioniranje na poetak datoteke void re4ind*F'() -pok.dat+ Funkcija za nalaenje trenutne vrednosti datotenog pokazivaa long int ftell *pok.dat+ Iaje trenutnu poziciju pokazivaa datoteke *tj. broj bajtova od poetka datoteke do trenutne pozicije+ Funkcija za ispitivanje da li je datoteni pokaziva pozicioniran na kraj datoteke int feof*F'() -dat.pok+/ Jraa vrednost razliitu od nule ukoliko je datoteni pokaziva pozicioniran na kraj datoteke.

You might also like