Crearea fisierilor și realizarea functilor în fișiere

Previzualizare curs:

Extras din curs:

PREZENTAREA GENERALĂ A MEDIULUI DE DEZVOLTARE

Turboc C++, produs al firmei Turbo International, este un pachet de

programe care oferă o implementare a limbajului C după standardul ANSI şi o

implementare a limbajului C++.

Extensiile implicite pentru cele doua categorii de fişiere sunt C respectiv

.CPP.

Mediul de dezvoltare integrat (IDE: Integrared Development Environment)

oferă toate facilitaţile necesare pentru editarea, compilarea, linkeditarea şi depanarea

programelor. La laborator vom folosi mediul integrat Turboc C++ 3.1, iar sistemul de

operare este Windows XP.

LUCRUL CU FIŞIERE (1)

1. Prezentare generală

Un fişier este o colecţie de date sau informaţii care are un nume. Toate

informaţiile existente intr-un calculator trebuie să fie cuprinse intr-un fişier. Sunt

diferite tipuri de fişiere: fişiere de date, fişiere text, fişiere program, fişiere director (şi

directoarele sunt de fapt nişte fişiere), etc. Există tipuri diferite de fişiere pentru că

există tipuri diferite de informaţie care trebuie stocată. De exemplu in fişierele

program găsim programe care pot fi lansate in execuţie, in timp ce fişierele text

conţin pur şi simplu texte. Fişierele sunt necesare pentru păstrarea informaţiilor in

vederea utilizării lor ulterioare, ca atare sau prelucrate conform unor algoritmi

utilizator. Informaţiile stocate in fişiere pot fi introduse de pe un suport extern sau pot

fi rezultate din aplicarea algoritmului de calcul. Există două mari categorii de fişiere:

fişiere text şi fişiere binare. Fişierele text sunt fişiere in care caracterele sunt

reprezentate prin codul lor (in general cod ASCII), deci conţin numai codurile

tipăribile; ele pot fi citite cu uşurinţă de operatorul uman. Fişierele binare sunt

accesibile pentru prelucrare numai calculatorului, nu şi operatorului uman; aceste

fişiere pot conţine atat coduri ale caracterelor tipăribile, cat şi codificarea binară a

operaţiilor pe care un program trebuie să le execute.

Diversele tipuri de date stocate in fişiere sunt grupate in inregistrări. Fiecare

inregistrare ce alcătuieşte un fişier conţine aceleaşi tipuri de date (şi in aceeaşi

ordine), ca urmare putem spune că fişierul este o colecţie de inregistrări şi se

caracterizează prin următoarele:

- inregistrările (ce conţin date) sunt omogene din punctul de vedere al conţinutului;

- inregistrările sunt stocate intr-o ordine cunoscuta, specifica fişierului;

- este definit cel puţin un criteriu de regăsire a unei inregistrări din fişier

Fişierele sunt păstrate pe suporturi de memorie externă definite de utilizator

(diskete, discuri dure (hard discuri), benzi magnetice, compact discuri).

Prelucrarea fişierelor implică un număr de operaţii specifice acestora. Pentru ca

un fişier să poată fi prelucrat el trebuie mai intai deschis (dacă există) şi apoi inchis

(după prelucrare). Dacă fişierul nu există, el va fi mai intai creat. Intre aceste două

operaţii (deschis/inchis) pot fi programate diverse alte acţiuni:

- adăugare inregistrări, constand in construirea unor noi inregistrări şi scrierea lor in

fişier cu respectarea ordinii şi a criteriului de regăsire;

- ştergerea unei inregistrări, constand in eliminarea acesteia din fişier cu respectarea

ordinii inregistrărilor rămase şi a criteriului lor de regăsire;

- consultarea (citirea unei inregistrări sau a mai multora) in scopul utilizării unor date,

fără a modifica conţinutul fişierului;

- actualizarea constand in citirea unei inregistrări, modificarea unei date (sau mai

multor date) din cuprinsul inregistrării urmată obligatoriu de o rescriere (salvare) a

inregistrării astfel actualizate.

Toate aceste prelucrări se realizează utilizand funcţii din bibliotecile standard

ale limbajului C, funcţii ale căror prototipuri se găsesc in fişierele header: stdio.h,

io.h, fcntl.h, sysstat.h.

Prelucrarea fişierelor se poate face pe doua nivele:

- nivel inferior, care face apel direct la sistemul de operare; aici fiecărui fişier i se

asociază un descriptor de fişier (o variabilă de tip intreg);

nivelul superior, cand se face apel la proceduri specializate in prelucrarea fişierelor

(de exemplu rezervarea unor zone tampon speciale pentru operaţii de intrare / ieşire)

şi cand fiecărui fişier cu care se lucrează i se asociază un pointer la o structură de tip

FILE (se va detalia in lucrarea nr. 11).

Observaţie: in cele ce urmează expresia pointer de fişier va fi folosită pentru a

denumi indicatorul de poziţie curentă in fişier (poziţia in fişier de unde putem citi sau

unde putem scrie). Nu confundaţi "pointer de fişier", in sensul de poziţia curentă in

fişier, cu un pointer pe o structură de tip file !!!

2. Nivelul inferior de prelucrare a fişierelor

Pentru lucrul cu fişiere este necesară includerea prealabilă a fişierelor header:

io.h, fcntl.h, sysstat.h. După folosirea oricărei funcţii se recomandă testarea valorii

returnate pentru verificarea efectuării corecte a operaţiei dorite.

2.1. Deschiderea unui fişier

Deschiderea unui fişier se face cu funcţia open, care returneaza un număr

intreg, numit descriptor de fişier sau număr logic. El este utilizat in continuare de

sistemul de operare pentru a identifica fişierul in toate operaţiile realizate asupra lui.

Pentru fişierul standard de intrare, adică pentru intrarea de la tastatură, descriptorul

de fişier, df = 0, pentru fişierul standard de ieşire, care este ecranul monitorului, df =

1, pentru fişierul standard de afişare a erorilor, df = 2.

Inchiderea şi deschiderea acestor trei fişiere se face automat de către sistem (deci

ele nu se deschid şi nu se inchid de către programator).

Prototipul funcţiei open, aflat in io.h este:

int open(const char *numefişier, int acces [,unsigned mod]);

unde:

- numefişier este un pointer spre un şir de caractere care defineşte numele fişierului

care se deschide (inclusiv calea lui, daca este cazul);

- acces este o variabilă de tip intreg care poate lua una din valori:

O_RDONLY - fişier deschis numai pentru citire;

O_WRONLY - fişier deschis numai pentru scriere;

O_RDWR - fişier deschis pentru citire / scriere;

O_APPEND - fişierul se deschide pentru adăugare de inregistrări (pointerul de

fişier se poziţionează după ultima inregistrare);

O_BINARY - fişierul care se deschide este binar;

O_TEXT - fişierul care se deschide este de tip text.

O_CREAT- nu are efect daca fişierul există; dacă nu există fişierul este creat şi

biţii din mod stabilesc atributele fişierului ca la chmod( );

O_TRUNC - dacă fişierul există, lungimea sa este trunchiată la zero, atributele

rămanand neschimbate;

O_EXCL - se foloseşte numai cu O_CREAT; se returnează eroare dacă fişierul

exista deja;

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Crearea Fisierilor si Relizarea Functilor in Fisiere.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
36 pagini
Imagini extrase:
36 imagini
Nr cuvinte:
8 015 cuvinte
Nr caractere:
48 583 caractere
Marime:
300.43KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Liviu Carcea
Sus!