Documente Academic
Documente Profesional
Documente Cultură
LIMBAJELE C/C++
FISIERE 1
CUPRINS
1. NOłIUNI INTRODUCTIVE
2. DATE, OPERATORI ŞI EXPRESII
3. IMPLEMENTAREA STRUCTURILOR DE CONTROL
4. TABLOURI
5. POINTERI
6. FUNCłII
7. TIPURI DE DATE DEFINITE DE UTILIZATOR
8. FISIERE
FISIERE 2
CAPITOLUL 8
FISIERE
FISIERE 3
CAP. 8. FISIERE
1. Caracteristici generale
2. Deschiderea unui fisier
3. Inchiderea unui fisier
4. Prelucrarea fisierelor text
1. Prelucrarea la nivel de caracter
2. Prelucrarea la nivel de cuvânt
3. Prelucrarea la nivel de caractere
4. Intrari/iesiri formatate
5. Intrari/iesiri binare
6. Pozitionarea intr-un fisier
7. Functii utilitare de lucru cu fisierele
8. Alte operatii cu fisiere
FISIERE 4
1. Caracteristici generale
Notiunea de fisier
Caracteristicile unui fisier
Dispozitivul logic de memorare (discul);
Calea;
Numele si extensia;
Atributele.
Avantajele lucrului cu fisiere
C: operatiile cu fisiere – prin functii din <stdio.h>
Transferurile de inf. se realizează prin intermediul unor
dispozitive logice numite stream-uri (fluxuri) şi prin
intermediul sistemului de operare.
Flux de date = fişier tratat printr-un pointer la o
structură de tip FILE.
FISIERE 5
Caracteristici generale (cont)
Fluxuri de date predefinite, deschise automat la
executia unui program:
stdin
stdout
stderr
stdaux, stdprn.
Fluxuri de tip:
text
binar.
Doua niveluri de prelucrare a fisierelor:
nivelul superior (functii din <stdio.h>, FILE)
FILE *f;
nivelul inferior (facilitatile SO, <io.h>, handle)
FISIERE 6
Operatii asupra fisierelor
deschiderea unui fisier:
scrierea intr-un fisier;
citirea dintr-un fisier;
pozitionarea intr-un fisier;
inchiderea intr-un fisier.
FISIERE 7
2. Deschiderea unui fisier
Functiile:
fopen, freopen (<stdio.h>
open (<io.h>)
FILE *fopen(const char *<n_f>,const char*<md>);
Mod deschidere:
r : flux de date de intrare; deschidere pentru citire;
w : flux de date de ieşire; deschidere pentru scriere (crează un fişier nou
sau suprascrie conŃinutul anterior al fişierului existent);
a : flux de date de ieşire cu scriere la sfârşitul fişierului, adăugare, sau
crearea fişierului în cazul în care acesta nu există;
+ : extinde un flux de intrare sau ieşire la unul de intrare/ieşire; operaŃii de
scriere şi citire asupra unui fişier deschis în condiŃiile r, w sau a.
b : date binare;
t : date text (modul implicit).
FISIERE 8
Deschiderea unui fisier (cont)
FILE *fopen(const char *<n_f>,const char*<md>);
Mod deschidere:
r : flux de date de intrare; deschidere pentru citire;
w : flux de date de ieşire; deschidere pentru scriere (crează un fişier
nou sau suprascrie conŃinutul anterior al fişierului existent);
a : flux de date de ieşire cu scriere la sfârşitul fişierului, adăugare,
sau crearea fişierului în cazul în care acesta nu există;
+ : extinde un flux de intrare sau ieşire la unul de intrare/ieşire;
operaŃii de scriere şi citire asupra unui fişier deschis în condiŃiile r, w
sau a.
b : date binare;
t : date text (modul implicit).
FISIERE 9
Deschiderea unui fisier (cont)
FILE *freopen(const char *<n>,const char*<m>,FILE* <p>);
FISIERE 10
3. Inchiderea unui fisier
Functiile:
fclose, fcloseall (<stdio.h>
close (<io.h>)
FISIERE 11
4. Prelucrarea fisierelor text
I/O la nivel de caracter
I/O la nivel de cuvant de memorie
I/O la nivel de sir de caractere
I/O formatate
FISIERE 12
Prelucrarea fisierelor text
I/O la nivel de caracter (octet)
Functiile:
fputc
fgetc
FISIERE 13
Prelucrarea fisierelor text
I/O la nivel de caracter (octet)
FISIERE 14
Prelucrarea fisierelor text
I/O la nivel de cuvant
Functiile:
fputw
fgetw
FISIERE 15
Prelucrarea fisierelor text
I/O la nivel de cuvant
FISIERE 16
Prelucrarea fisierelor text
I/O la nivel de sir de caractere
Functiile:
fputs
fgets
FISIERE 17
Prelucrarea fisierelor text
I/O la nivel de sir de caractere
#include <stdio.h>
int main()
{int n=250; FILE *pfsir;
char sir[250],*psir; pfsir=fopen("f_sir.txt","w");
psir=fgets(sir,n,stdin);
while(psir!=NULL)
{fputs(sir,pfsir); psir=fgets(sir,n,stdin); }
fclose(pfsir);
pfsir=fopen("f_sir.txt","r"); psir=fgets(sir,n,pfsir);
while(psir!=NULL)
{ fputs(sir,stdout); psir=fgets(sir,n,pfsir); }
fclose(pfsir);}
} FISIERE 18
Prelucrarea fisierelor text
I/O formatate
Functiile:
fprintf
fscanf
FISIERE 19
5. Prelucrarea fisierelor binare
Functiile:
fread
fwrite
FISIERE 20
Prelucrarea fisierelor binare
FISIERE 21
Exemplu:
FISIERE 22
6. Pozitionarea intr-un fisier
int fseek(FILE *<pf>, long <depl>, int <ref>);
ref: 0 - începutul fişierului (SEEK_SET);
1 - poziŃia curentă a capului (SEEK_CUR);
2 - sfârşitul fişierului (SEEK_END).
int fgetpos(FILE *<f>, fpos_t *<poziŃie>);
int fsetpos(FILE *<f>, const fpos_t *<poz>);
Modificarea valorii indicatorului de poziŃie şi de
determinare a poziŃiei curente
long ftell(FILE *<pf>);
void rewind(FILE *<flux_date>);
FISIERE 23
7. Functii utilitare
Testarea intalnirii sfarsitului de fisier (numai f. text!!!):
int feof(FILE *<flux_date>);
Golirea fluxurilor de date (a buffer-lor):
int fflush(FILE *<flux_date>);
int flushall(void);
FISIERE 24
8. Alte operatii cu fisiere
Stergerea unui fisier:
int remove(const char *<nume_fişier>);
Redenumire:
int rename(const char *<n_v>,const char
*<n_n>);
Modificarea dimensiunii:
int chsize(int <indicator>, long <lungime>);
FISIERE 25