duminică, 4 decembrie 2011

FILE

Tipul fişier

Un fişier este o colecţie de date. El este memorat pe un suport de informaţie. Suportuul de informaţie se numeşte volum. De regulă, pe un suport există mai multe fişiere. Pentru a identifica un fişier, el trebuie să aibă un nume delimitarea fişierului pe suport se face prin marcaje logice:

1) marcaj de început de fişier (BOF - Begin Of File)
2) marcaj de sfârşit de fişier (EOF - End Of File)

Fişierul este o colecţie de înregistrări. Înregistrările sunt de două tipuri:
1) înregistrări fizice sau blocuri;
2) înregistrări logice sau articole.
Înregistrarea fizică este unitatea de transfer între dispozitivul pereferic şi procesor. Deci, pe suportul de de informaţie, fişierul este o colecţie de înregistrări fizice .
Înregistrarea logică este unitatea de informaţie pe care o tratează programul. Prin urmare, din punct de vedere al programului care manipulează fişierul, acesta este o colecţie de înregistrări logice.
Translatarea între cele două tipuri de înregistrări o face sistemul de operare.
Organizarea datelor îin fişiere este necesară, dacă:
1) volumul datelor prelucrate este foarte mare şi depăşeşte caracteristica memoriei operative disponibile;
2) datele trbuie stocate în vederea unei prelucrări ulterioare, în cadrul aceluiaşi program sau al altora.
Tipul fişier defineşte o structură care cuprinde un număr nefixat de componente de acelaşi tip.
Tipul fişier se aseamănă cu tipul tablou prin faptul că toate componentele au acelaşi tip, dar se deosebesc de acestea prin modul de acces la componente ş i prin aceea că numărul componentelor unui tip fişier nu este limitat.
Accesul la componentele unui fişier poate fi:
1) secvenţial – pentru a accesa o anumită componentă trebuie parcurse toate componentele care o preced în fişier;
2) direct – orice componentă se poate accesa imediat, dacă se precizează numărul ei de ordine în fişier, fără să fie necesară parcurgerea elementelor precedente.
Accesul direct este permis numai pentru fişierele stocate pe pe disc. Acesta este singurul suport adresabil, care permite calculul adresei unei componente, dacă i se cunoaşte lungimea şi numărul de ordine în fişier.
Fiecărui fişier i se asociază de către compilator o variabilă numită indicator de fişier care cuprinde, pe tot parcursul prelucrării fişierului, numărul de ordine al componentei curente.
În limbajele de programare există trei tipuri de fişiere:
1) fişiere cu tip – componentele au acelaşi tip şi sunt stocate pe disc;
2) fişiere text – componentele sunt caractere structurate pe linii de lungimi variabile;
3) fişiere fără tip – componentele sunt blocuri de informaţii de lungime fixă, stocate pe disc.
Într-un algoritm un fişier se identifică printr-o variabilă de tip fişier, variabila de tip fişier nu are voie să apară în atribuiri sau expresii.

Prelucrările admise asupra unui fişier
1) crearea fişierului – constă în scrierea componentelor în fişier;
2) exploatarea fişierului – constă în citirea şi prelucrarea componentelor fişierului;
3) actualizarea fişierului – constă în adăugarea, modificarea sau “ştergerea” unor componente ale fişierului, prin operaţii de citire şi scriere.
Oricare ar fi modul de prelucrare al unui fişier, accesul la componentele lui este permis numai dacă el este deschis. Orice prelucrare începe cu deschiderea fişierului şi se încheie ci închiderea sa. Deschiderea fişierului se realizează cu ajutorul procedurii
Open(numele fişierului, tipul prelucrării),
Unde, tipul prelucrării poate fi Input sau Output. Output se foloseşte atunci când are loc crearea fişierului, iar Input - la exploatarea fişierului.
Fişierele cu tip
Un fişier cu tip cuprinde mai multe componente de acelaşi tip, numit tipul de bază al fişierului. Se declară fişierul cu tip astfel:
FILE OF
Tipul componentelor este de obicei de tip articol. Componentele unui fişier cu tip pot fi accesate atât secvenţial cât şi direct.
Indicatorul de fişier indică în permanenţă numărul de ordine al componentei care urmează să fie prelucrată. Programatorul are acces la acest indicator prin intermediul funcţiei FILEPOS şi al procedurii SEEK. După deschiderea fişierului indicatorul de fişier are valoarea 0.

Operaţiile posibile
1. citirea unei componente se realozează prin apelul procedurii
READ(fişier, articol)
Execuţia procedurii constă în:
Se citeşte componenta al cărei număr de ordine este păstrat în indicatorul de fişier şi se memorează în articol. Valoarea indicatorului de fişier creşte cu 1. La prima operaţie de citire tot conţinutul înregistrării fizice se transferă în zona de tampon, asociată fişierului, iar apoi din zona de tampon prima înregistrare logică se transferă la adresa variabilei articol. Următoarele operaţii de citire preiau consecutiv înregistrările logice din zona de tampon până când tot conţinutul zonei de tampon nu va fi prelucrat. După aceasta în zona de tampon se transferă următoarea înregistrare logică.
2. scrierea componentelor în fişier
WRITE(fişier, articol)
Se scrie conţinutul articolului în fişier prin intermediul zonei de tampon, care după ce se completează se scrie automat pe disc.
3. funcţia EOF(fişier) de tip Boolean.
Se apelează prin EOF(fişier). Funcţia returnează True, dacă indicatorul de fişier indică marcaju EOF sau dacă fişierul este vid şi False în caz contrar.
4. funcţia FILEPOS(fişier) returnează numărul de ordine al componentei curente.
5. Funcţia FILESIZE(fisier) returnează numărul de componente asociat fişierului. Dacă indicatorul de fişier indică sfârşitul fişierului , atunci:
FILESIZE(fisier) = FILEPOS(fisier)
EOF(fisier) = TRUE
6. Procedura SEEK(fisier,n)
Prin execuţia procedurii se poziţionează indicatorul de fişier la valoarea n.
7. Procedura CLOSE(fisier) – realizează închiderea fişierului. Dacă fişierul este deschis cu OUTPUT, atunci operaţia de închidere este obligatorie, deoarece are loc transferarea informaţiilor din zona de tampon incomplecte în fişier pe disc.

Niciun comentariu:

Trimiteți un comentariu