Idi nazad   Croportal Forum > Tehnologija i Tehnika > Tutoriali i Trikovi
Registracija FAQ Lista korisnika Kalendar Pretraži Današnje Poruke Označi forume pročitanima Online igre


Tutoriali i Trikovi Raspravljate o temi Datoteke u Tehnologija i Tehnika forumu; U ovom vodiču ću vam objasniti ono što biste trebali znati osnovno o datotekama kako biste mogli raditi sa njima ...

Odgovor
 
Opcije Teme
Star 12-02-06, 14:03   #1 (permalink)
Administrator
 
Avatar od korisnika Kristijan
 
Datum registracije: 20-02-04
Lokacija: Hrvatska / Dubrava
Godina: 22
Poruka: 17,854
Kristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svimaKristijan je poznat svima
Pošalji poruku preko ICQ-a korisniku Kristijan Pošalji poruku preko MSN-a korisniku Kristijan Pošalji poruku preko Skype-a korisniku Kristijan
Datoteke

U ovom vodiču ću vam objasniti ono što biste trebali znati osnovno o datotekama kako biste mogli raditi sa njima

Prvo ćemo započet nešto osnovno o datotekama, pa zatim deklaracijom pokazivača na datoteku, dodjeljivanje vrijednosti pokazivača na datoteku i onda ćemo objasniti na koji se način pristupa datoteci, kako zatvaramo datoteku, i dvije funkcije: funkcija za upis bloka podataka u datoteku i funkcija za čitanje podataka iz datoteke. Također ćemo riješiti i jedan primjer zadatka.

Datoteke
- Datoteka je skup međusobno povezanih podataka spremljenih na disk.
- Datotekama pristupamo preko pokazivača na datoteku. (da bi pristupili datoteci pokazivač mora biti deklariran)

Deklaracija pokazivača na datoteku

Kod:
FILE *fp;
(ovime smo deklarirali pokazivač na datoteku fp) FILE – uvijek pišemo velikim slovima

Dodjeljivanje vrijednosti pokazivača na datoteku
- pokazivač na datoteku dodjeljujemo vrijednosti pomoću funkcije fopen( )

Kod:
fp=fopen("ime datoteke" , "način pristupa datoteci");
      if(fp=NULL) – moramo ispitati da li je fp=nuli
     {printf("n Greška kod otvaranja datoteke");
      exit(1); - ovime izlazimo van iz programa
      }
- ove dvije zagrade koje smo postavili one se nalaze ovdje zbog funkcije if

Način i pristup datoteci
r
- datoteka mora postojati inače će fopen javiti grešku (NULL)
- datoteci pristupamo zbog čitanja sadržaja datoteke (također i zbog pisanja sadržaja datoteke)

w
- datoteci pristupamo zbog upisa sadržaja u datoteku
- ukoliko navedena datoteka već postoji njezin će sadržaj biti prebrisan novim sadržajem
a
- pristupamo datoteci zbog dodavanja sadržaja na kraj datoteke
- ako datoteka ne postoji bit će kreirana, kreirat ćemo novu datoteku s navedenim imenom

r, w i a – nam omogućuje samo tekstualni pristup datoteci
IME DATOTEKE
"c:proba.txt"

Zatvaranje datoteke
- nakon prestanka rada s datotekama, datoteku je potrebno zatvoriti
- datoteku zatvaramo funkcijom fclose(fp);
- budući da može biti više datoteka moramo navesti ime datoteke koju će funkcija fclose zatvoriti, u našem slučaju to je datoteka (fp);

Funkcija za upis bloka podatak u datoteku
- funkcija glasi fwrite i ona ima više argumenata

Kod:
fwrite(&blok, sizeof(struct raz), 1, fp);
& - adresa bloka podataka kojeg upisujemo u datoteku (1. argument)
sizeof - veličina bloka podataka u bajtima (2. argument)
struct raz - ovo smo samo naveli kao primjer, može biti bilo koja druga struktura (3. argument)
broj 1 - označava broj blokova podataka (4. argument)
fp – definiranje datoteke u koju upisujemo blok podataka (5. argument)

Funkcija za čitanje podataka iz datoteke

fread – ima iste argumente kao i funkcija fwrite

Kod:
fread(&blok, sizeof(struct raz), 1, fp);
& - adresa bloka podataka kojeg upisujemo u datoteku (1. argument)
sizeof - veličina bloka podataka u bajtima (2. argument)
struct raz - ovo smo samo naveli kao primjer, može biti bilo koja druga struktura (3. argument)
broj 1 - označava broj blokova podataka (4. argument)
fp – definiranje datoteke u koju upisujemo blok podataka (5. argument)

Sada ćemo riješti jedan primjer na temelju svega ovoga što smo napisali.


Primjer: Upisati ćemo u datoteku podatke za 10 učenika: znači ime, prezime, broj opravdanih i neopravdanih sati. Pročitati ćemo podatke iz datoteke, ispisati prosječan broj izostanaka po učeniku, te podatke o učeniku s više od 30 sati izostanka.

Kod:
#include<stdio.h>
struct ucenik{
char ime[10];
char prezime[10];
int opr, neopr;
}uc;
main(){
FILE *fp;
float pr,zb=0;
int i; 
printf("n Upiši ime i prezime, te broj opravdanih i neopravdanih izostanaka");
fp=fopen("IZOSTANCI.TXT","w");
for(i=0;i<10;i++){
	scanf("%s %s %d %d",uc.ime,uc.prezime,&uc.opr,&uc.neorp);
	if(fp==NULL){
	printf("n Greška pri otvaranju datoteke");
	exit(1);}
fwrite(&uc,sizeof(struct ucenik),1,fp);}
fclose(fp);
fp=fopen("IZOSTANCI.TXT","r");
if(fp==NULL){
	printf("n Greška pri čitanju datoteke");
	exit(1);
}
printf("n Učenici s više od 30 sati izostanaka su: ");
for(i=0;i<10;i++){
	fread(&uc,sizeof(struct ucenik),1,fp);
	if(uc.neopr+uc.opr>30)
	printf("n %s %s %d %d",uc.ime,uc.prezime,uc.opr,uc.neopr);
}
pr=zb/10;
printf("n Prosječan broj izostanaka po učeniku je: %f",pr);
flose(fp);
}
Kristijan je online sada  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Odgovori sa citatom
Odgovor
Tagovi: datoteke, programiranje c



Broj korisnika koji trenutno prate ovu Temu: 1 (0 članova i 1 gosta)
 
Opcije Teme

Pravila poruka
Vi smijete ne otvarati nove teme
Vi smijete ne odgovarati na poruke
Vi smijete ne slati privitke
Vi smijete ne urediti vašu poruku

vB Kod je Uključen
Smajlići Kod je Uključen
[IMG] kod je Uključen
HTML kod je Isključen
Trackbacks are Isključen
Pingbacks are Isključen
Refbacks are Isključen

Slične Diskusije
Tema Pokretač teme Forum Odgovora Zadnja poruka
Instalacija PHP Nuke Portala -Neno- Tutoriali i Trikovi 6 06-05-07 10:45
Tips & Tricks za Siemens SL45 Kristijan Mobiteli 0 26-10-05 23:19
Sistemske datoteke u dos-u i windowsima Kristijan Računala 0 21-10-05 16:34
Windows NT Boot Proces Kristijan Računala 0 21-10-05 16:17
Zaštita od parazita pomoću datoteke HOSTS Kristijan Savjeti i Trikovi XP 0 30-09-05 15:43


Trenutno vrijeme na forumu: 20:20.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114