Documente Academic
Documente Profesional
Documente Cultură
Preentare Fisiere
Preentare Fisiere
Iulia IACOB
GENERALITĂŢI
Fişier = colecţie ordonată de date memorate
(înregistrări) păstrate pe un suport extern de
memorie şi identificate printr-un nume.
Exemplu:
FILE *pFile, *qFile;
pFile = fopen("student.txt","rt");
➢ se deschide fisierul student.txt, din directorul curent, in modul citire text.
qFile = fopen("d:\\PC\\test.bin","wt");
➢ se deschide fisierul test.bin având calea d:\\PC\\test.bin în modul
scriere text.
Moduri de acces la fisier
Mod
Descriere
acces
▪ se creează un fișier pentru scriere
“w” ▪ dacă există deja un fișier cu același nume, conținutul lui este
șters
▪ se creează un fișier atât pentru scriere, cât și pentru citire
“w+” ▪ dacă există deja un fișier cu același nume, conținutul lui este
șters
▪ fişierul se deschide pentru citire,
“r” ▪ fişierul trebuie să existe deja
“r+” ▪ fişierul se deschide pentru citire şi scriere ;
▪ fişierul trebuie să existe deja
▪ dacă fişierul nu există atunci el va fi creat
“a” ▪ dacă fişierul există fişierul se deschide pentru adăugare,
▪ poziţionarea se face la sfârşitul fişierului
“a+” ▪ fişierul se deschide pentru citire şi adăugare la sfârșit;
▪ citirea: se poate face de la orice poziție din fișier,
▪ scrierea: se face doar la sfârșit
▪ dacă fişierul nu există atunci el va fi creat
"t" sau "b"= tip fişier ("text", "binary"), implicit este "t“
Închiderea unui fişier
FILE *pFile;
char character;
fclose (f);
}
✓ returnează următorul caracter citit din fişier convertit în întreg fără semn
la eroare returnează EOF
FILE *pFile;
char character;
int noOfCharacters = 0;
....
do {
character = fgetc (pFile);
if (character == 'a') noOfCharacters++;
} while (character != EOF);
....
...
fputs("Mesaj demonstartiv pentru scriere in fisier!", pFile);
...
...
while (fgets(buffer,200, pFile) != NULL) {
printf("%s", buffer);
}
...
//sau
...
do {
pch = fgets(buffer,100, pFile);
if (pch) printf("%s", buffer);
} while(pch);
• se citesc date din fişierul f, sub controlul formatului, iniţializându-se parametrii din listă
✓ returneză numărul de câmpuri (componente) citite
returneză EOF în caz de producere a unui incident la citire sau la întâlnirea marcajului de
sfârşit de fişier.
typedef struct{
char nume[20],prenume[20],telefon[20];int varsta;
}PERSOANA;
...
FILE *pFile; PERSOANA pers;
pFile = fopen(fileName,"wb");
...
strcpy(pers.nume,"Popescu"); strcpy(pers.prenume,"Andrei");
strcpy(pers.telefon,"0215111222"); pers.varsta=20;
fwrite(&pers, sizeof(PERSOANA),1, pFile);
...
fclose(pFile);
• citeşte cel mult na articole, de lungime size fiecare, din fişierul stream în ptr
✓ returneză numărul de înregistrări citite
returneză 0 dacă s-a produs o eroare sau s-a ajuns la sfârşit de fişier
...
FILE *pFile; PERSOANA other;
pFile = fopen(fileName, "rb");
...
fseek(pFile,0,SEEK_SET);
fread(&other.nume,sizeof(other.nume),1, pFile);
printf("NUME: \t\t%s\n", other.nume);
fread(&other.prenume,sizeof(other.prenume),1, pFile);
printf("PRENUME: \t%s\n", other.prenume);
fread(&other.telefon, sizeof(other.telefon),1, pFile);
printf("Telefon: \t%s\n", other.telefon);
fread(&other.varsta,sizeof(other.varsta),1, pFile);
printf("Varsta: \t%d\n", other.varsta);
fclose(pFile);
fseek(pFile, 0, SEEK_END);
long df = ftell(pFile); Fisierul demo.txt are
printf("Fisierul %s are %d Bytes\n", 49 Bytes
fileName, df);