Sunteți pe pagina 1din 4

Fisiere

1. Notiuni introductive

Definitie: Se numeste fisier o colectie de date omogene (adica de acelasi tip), stocate pe un suport de
memorie extern si accesate printr-un nume care reprezinta numele fisierului.

In Pascal se lucreaza cu trei tipuri de fisiere:


n fisiere text;
n fisiere cu tip;
n fisiere fara tip;

2. Fisiere text

Fisierele text sunt formate dintr-o succesiune de octeti interpretati ca fiind coduri de caractere
(coduri ASCII). Fisierul text se termina prin marcajul eof (end of file) care se genereaza prin apasarea
CTRL+Z. Un fisier poate contine una sau mai multe linii de text. Liniile de text sunt separate prin
marcajul newline(‘\n’) care se genereaza la apasarea Enter.
Observatie:
Fisierul are un indicator de fisier (o variabila) care pastreaza adresa octetului ce urmeaza a fi
prelucrat.

3. Operatii cu fisiere

Pentru a lucra cu un fisier, trebuie asociat variabilei logice de tip fisier (identificatorul declarat
in program) un fisier fizic (care exista sau se va crea pe un suport magnetic). Apoi, fisierul trebuie
deschis pentru prelucrare, prelucrat si, la sfarsit, inchis.
Pentru prelucrarea fisierelor se folosesc subprograme predefinite din unit-ul system.

1. Declararea unei variabile de tip fisier text:


id_fisier: text;
Exemplu:
var f: text;

2. Asocierea unei variabile logice de tip fisier text unui fisier fizic:
assign (id_fisier, nume_fisier);
Exemplu:
assign (f, ‘date.txt’);
assign (g, ‘d:\bp\’matrice.in’) ;

3. Deschiderea unui fisier:


In functie de operatiile care vor fi executate asupra datelor din fisier, exista trei modalitati de a
deschide un fisier:
 pentru citire
reset (id_fisier);

Exemplu:
reset(g);
Observatie: daca fisierul nu exista, va fi semnalata o eroare!

 pentru scriere
rewrite (id_fisier);
Exemplu:
rewrite (f);
Observatie: daca fisierul exista, informatiile se vor suprascrie (informatiile deja existente in fisier se
vor pierde la deschidere)!

 pentru adaugare
append (id_fisier);

Exemplu:
append (g);
Observatie: daca fisierul exista, se va deschide la sfarsit pentru scriere. Daca fisierul nu exista, va fi
semnalata o eroare!

4. Inchiderea unui fisier:


close (id_fisier);
Exemplu:
close (f);

5. Verificarea sfarsitului de fisier si al sfarsitului de linie:


eof (id_fisier) - functie care returneaza true daca s-a intalnit sfarsitul de fisier si false in caz contrar.
eoln (id_fisier) – functie care returneaza true daca s-a intalnit sfarsitul de linie si false in caz contrar.

6. Scrierea in fisier:
write (id_fisier, lista_expresii);
writeln (id_fisier, lista_expresii);
writeln (id_fisier);

Exemple:
write (f, a);
write (f, ‘nu exista elemente’);
write (f, v[i], ‘ ‘);
writeln(f);

7. Citirea din fisier:


read (id_fisier, lista_variabile);
readln (id_fisier, lista_variabile);
readln (id_fisier);

Exemple:
read (f, a, b);
readln (f , n);
readln (f);

4. Exemplu 1

Tipul fisier 2
 Sa se creeze un fisier ce va contine numere intregi (pana la intalnirea valorii 0), scrise fiecare pe
cate un rand.

3
Program crearefisier; write(‘numar:’); readln(nr);
var f : text ; nume : string[20] ; nr : integer ; writeln (f, nr);
begin until nr = 0;
writeln (‘nume fisier sursa’) ; close(f);
readln (nume);
assign (f, nume); rewrite (f); end. {fisiserul va contine si valoarea 0}
repeat

 Sa se citeasca un fisier care contine mai multe numere intregi, scrise fiecare pe cate un rand, si
sa se creeze doua fisiere: unul cu numere pare si altul cu numere impare.

program par_impar_cu_fisier;
var nume1, nume2, nume3 : string [20] ; nr :integer ; f1, f2, f3 : text ;
begin
write(‘nume fisier sursa :’ ) ; readln (nume1) ;
write(‘nume fisier sursa pare :’ ) ; readln (nume2) ;
write(‘nume fisier sursa impare :’ ) ; readln (nume3) ;
assign (f1, nume1); reset (f1);
assign (f2, nume2); rewrite (f2);
assign (f3, nume3); rewrite (f3);
while not eof(f1) do
begin
readln(f1, nr);
if nr mod 2 = 0 then writeln(f2, nr)
else writeln(f3,nr);
end;
close(f1); close(f2); close(f3);
end.

S-ar putea să vă placă și