Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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’) ;
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!
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);
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.