Prelucrarea fisierelor in C ATP
description
Transcript of Prelucrarea fisierelor in C ATP
-
Prelucrarea fiierelor n C
-
Prelucrarea fiierelor n COperaii generaleContext de lucru. Elemente specifice CFiiere standardFuncii C pentru prelucrarea fiierelorAlgoritmi
-
Operaii generaledescriere fiier (tabel cu caracteristici)asignare fiier intern la unul extern (fizic)deschidere fiieroperaii de acces la coninut (date)nchidere fiier
-
Context de lucru. Elemente specifice CTrebuie identificatetipurile de fiieremetode de organizaremoduri de accestipuri de articole
flux de octeisecvenialsecvenial, direct-
-
Fiiere standardGestionare automat, redirectare prin SO.stdin de intrare (n Pascal input)stdout de ieire (n Pascal output)stderr pentru afiarea erorilorstdaux asociat portului serial stdprn asociat imprimantei (port paralel)
-
Funcii C pentru prelucrare fiierelorExist dou niveluri de prelucrare:nivelul inferiornivelul superior asociaz o semnificaie fluxului de octei =>fiiere textfiiere binare
-
Nivelul superiorDescriere fiierPointer la tipul FILE (structur standard)
FILE* f;Funcii prelucrare generalscriere/citire cu conversiescriere/citire fr conversie
-
Funcii de prelucrare generalDeschidere i asignare (simultan)
FILE* fopen(const char *nume_extern, const char* mod);
Moduri de deschidere:arwa+r+w+modificatori: t bExemple:FILE* f, *g;f=fopen(studenti.dat, rwb);if(!(g=fopen(raport.txt, w)))printf(Insuficient spatiu pe disc);else { }
Operaia de gestiuneFiiere textFiiere binareCrearewwbConsultarerrbActualizare-r+bCreare i actualizarew+rwb, w+bExtinderea-
-
Funcii de prelucrare generalnchidere fiierint fclose(FILE* f);Revenire la nceputvoid rewind(FILE* f);Testare sfrit fiierint feof(FILE* f);Golirea zonei tampon int fflush(FILE* f);Aflarea poziiei curentelong ftell(FILE* f);Modificarea poziieiint fseek(FILE* f, long deplasare, int origine);Redenumire fiierint rename (const char* n_vechi,const char* n_nou);tergere fiierint remove (const char* nume);
-
Funcii de citire/scriere fr conversieScrieresize_t fwrite(const void* ptr, size_t dim, size_t n, FILE* f);Citiresize_t fread(const void* ptr, size_t dim, size_t n, FILE* f);Exemplustruct complex{float r,i;}art;FILE* f;if(f=fopen(numere.dat,r+b)){fread(&art, sizeof(art), 1, f); rewind(f); art.r=7;art.i=9; fwrite(&art, sizeof(art), 1, f);}else printf(Fisierul nu poate fi deschis);
-
Funcii de citire/scriere cu conversieRealizeaz transferul cu conversie ntre repre-zentarea intern (binar) i cea extern (ASCII)Funcii pentru transferul de caractere int fgetc(FILE* f); int fputc(int c, FILE *f); int getc(FILE* f);int putc(int c, FILE *f);
-
Funcii de citire/scriere cu conversieFuncii pentru transferul de iruri caractere char* fgets(char* s,int n,FILE* f);int fputs(const char* s,FILE* f); Funcii de transfer cu formatare explicitint fprintf(FILE* f,const char* format[,]);int fscanf(FILE* f,const char* format, adresa[,]);
-
AlgoritmiPrincipala diferen: testarea sfritului de fiierPascal:while not eof(f) dobegin end;C:
while(!feof(f)){ }
-
Spor la nvat !