Sunteți pe pagina 1din 4

PAD, anul III, semestrul I, Cursul 12

PROCEDURI I FUNCII PENTRU LUCRUL CU FIIERE


ASSIGN
Asociaz numele unui fiier cu calea acestuia ntr-o variabil.
Sintax de utilizare:
Assign(var f; calea+numele ntreg al fiierului);
Observaii:
f poate fi o variabil de tip fiier, iar fiierul acesta poate fi de orice tip. Orice alt
operaiune ulterioar cu acest fiier va fi facut prin intermediul variabilei f.
f este un nume generic dat n aceste exemple pentru variabila de tip text, dar poate
avea orice nume i, de asemenea, pot fi declarate mai multe variabile de acest fel
simultan.
Dup ce se realizeaz asocierea ntre un fiier i variabila f, aceasta se menine
pn cnd se face o alt asociere pe aceeai variabil.
Numele fiierului const n calea acestuia ce poate s conin partiia, unul sau
mai multe directoare separate cu backslash numele fiierului i extensia acestuia.
Exemplu:
D:\Lucru\Ex_Stud\fistext.txt
Dac o cale ncepe direct cu backslash, se consider partiia ca fiind partiia curent
iar dac nu se specific nici alt director, se consider directorul curent.
Numele fiierului const n maximum 8 caractere, urmate de punct i de extensia
format din maximum 3 caractere iar ntreaga lungime a ci specificate + numele fiierului
nu trebuie s depesc 79 de caractere.
Restricii:
Acest procedur nu poate fi utilizat pe un fiier care este deschis de o alt
aplicaie sau subrutin.

REWRITE
Creeaz i deschide un nou fiier.
Sintax:
Rewrite(var F: File ; marimefisier: Word );
Observaii:
F este o variabil ce corespunde oricrui tip de fiier ce a fost asociat variabilei F
n prealabil cu comanda assign.
1

PAD, anul III, semestrul I, Cursul 12


marime fisier este o expresie opional care poate fi specificat numai dac F este
un fiier nedefinit, marimefisier definind marimea nregistrrilor ce pot fi folosite n
transferul de date. Daca marimefisier nu este specificat, valoarea de 128 bytes este
alocat automat.
Rewrite creeaz un fiier nou, cu numele asociat prin variabila F. Dac respectivul
fiier exist deja, el va fi ters i un nou fiier gol va fi creeat n locul lui. Dac fiierul
existent era i deschis, acesta va fi mai nti nchis i apoi recreeat. Poziia curent a
cursorului n interiorul fiierului va fi setat la nceputul fiierului gol.
Cu condiia {$I-} activat, funcia IOResult devine 0 cnd operaia de creeare a
fost ndeplinit cu succes, altfel ntoarce o valoarea diferit de 0.

RESET
Deschide un fiier existent.
Sintax:
Reset(var F : File; marimefisier: Word ]);
Observaii:
F este o variabil ce corespunde oricrui tip de fiier ce a fost asociat variabilei F
n prealabil cu comanda assign.
F marimefisier este o expresie opional care poate fi specificat numai dac F
este un fiier nedefinit, marimefisier definind marimea nregistrrilor ce pot fi folosite n
transferul de date. Daca marimefisier nu este specificat, valoarea de 128 bytes este
alocat automat.
Reset deschide pentru citire sau scriere un fiier asociat prin variabila F. Dac
fiierul F nu exist apar erori. Dac fiierul corespunztor lui F este deja deschis spre
editare, acesta va fi mai ntai nchis.
Poziia cursorului n cadrul fiierului va fi stabilit la nceputul acestuia.
Situaia n care cursorul ajunge la sfritul fisierului curent este verificat prin
intermediul variabilei Eof(F) unde F este variabila asociat fiierului curent, care devine
true dac s-a ajuns la finalul fiierului i rmne false pentru alte poziii ale cursorului n
cadrul fiierului curent.

CLOSE
nchide un fiier deschis spre editare sau citire.
Sintax:
Close(var F);
Observaii:
F este variabila de tip fiier, iar acesta a fost deschis n prealabil cu una din
procedurile Reset, Rewrite sau Append. Fiierul asociat lui F este, prin intermediul acestei
proceduri, updatat i nchis, elibernd sistemul de operare de utilizarea acestuia.
2

PAD, anul III, semestrul I, Cursul 12

Utiliznd condiionarea {$I-}, funcia IOResult va deveni 0 dac operaiunea


de nchidere s-a efectuat cu succes sau va avea valori diferite de 0 daca a survenit vreo
eroare n nchiderea fiierului.
APPEND
Deschide un fiier pentru adaugarea de nregistrri n acesta.
Sintax:
Append(var f: Text);
Observaii:
F este o variabil asociat cii i fiierului cu care dorim s lucrm.
Append deschide fiierul corespunztor lui F. Dac acesta nu exist apar erori iar
dac acesta a mai fost deschis n prealabil, el va fi nchis, apoi redeschis. Spre deosebire
de ReWrite, dup deschidere, pozionarea cursorului n cadrul fiierului se face la sfritul
acestuia.
Testarea efecturii cu succes a acestei proceduri se face ca si n cazurile
anterioare cu ajutorul directivei condiionale {$I-} i a funcia IOResult.

Exemplu de utilizare a acestor comenzi:


Exemplul 1 Creearea unui fiier, scrierea i citirea din el.
program lucru_fisiere;
uses wincrt;
var
f:text;
-poate fi declarat ca text sub Windows i de tip file sub DOS
temp:string;
begin
{$I-}
assign(f,'D:\test.txt'); -se face asocierea unui fiier la variabila f
if IOResult=0 then writeln('Asocierea s-a facut
succes!'); - se verific acest lucru
rewrite(f); -se creeaz i se deschide fiierul
if IOResult=0 then writeln('Deschiderea s-a facut
succes!');
writeln(f,'TEXT TEST SCRIS INTR-UN FISIER!!!'); -se scrie
text n fiierul deschis
close(f); - se nchide fiierul
if IOResult=0 then writeln('Inchiderea s-a facut
succes!');
reset(f); -se deschide fiierul
while not Eof(f) do
begin

cu

cu
un

cu

PAD, anul III, semestrul I, Cursul 12


readln(f,temp);

-se citete coninutul

writeln(temp);

-se afieaz pe ecran

acestuia
coninutul
end;
close(f); - se nchide fiierul
end.
Exemplul 2 Copierea coninutului unui fiier surs ntr-un fiier destinaie,
precum i creearea acestuia din urm.
program copiere_fisiere;
uses wincrt;
var
f1,f2:text; - se declar dou variabile de tip text pentru cele dou fiiere
temp:string;
begin
assign(f1,'D:\test.txt'); -se asociaz ci i nume de fiiere pentru
cele dou variabile
assign(f2,'D:\test1.txt');
reset(f1); -se deschide fiierul surs
rewrite(f2); -se creeaz i deschide fiierul destinaie
while not Eof(f1) do
begin
readln(f1,temp); -se copie rnd cu
rnd coninutul primului fiier n cel de-al doilea, att timp ct nu se ajunge la finalul primul
fiier (surs)
writeln(f2,temp);
end;
close(f1); - se nchid cele dou fiiere
close(f2);
end.
O atenie deosebit trebuie acordat aici celor dou proceduri, de citire i de scriere.
Dac nu se specific nici o destinaie, write i read folosesc consolele standard de
intrare ieire, adic tastatura i monitorul. Concret, se citete de la tastatur i se scrie pe
ieirea de monitor.
De asemenea, se observ c testarea ndeplinirii cu succes a procedurilor legate de
fiiere este opional, n al doilea exemplu nemaifacndu-se acest lucru.
Lucrul cu fiierele este extrem de util ndeosebi n programele legate de topografie i
geodezie, facnd posibil introducerea numai o dat a datelor de intrare, citirea lor din
fiiere eliminand posiblilitatea de a transcrie greit aceste valori i munca legat de
introducerea lor, de fiecare dat.

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

  • Ghid TezAn
    Ghid TezAn
    Document8 pagini
    Ghid TezAn
    Andrei Profir
    Încă nu există evaluări
  • Indrumator Practica
    Indrumator Practica
    Document169 pagini
    Indrumator Practica
    Alinafanea
    100% (1)
  • Geopolitica Curs
    Geopolitica Curs
    Document22 pagini
    Geopolitica Curs
    Andrei Profir
    Încă nu există evaluări
  • 1 Ajutor
    1 Ajutor
    Document7 pagini
    1 Ajutor
    Andrei Profir
    Încă nu există evaluări
  • Topografie
    Topografie
    Document36 pagini
    Topografie
    CALINA
    100% (1)
  • Algoritmi
    Algoritmi
    Document133 pagini
    Algoritmi
    afaceri
    Încă nu există evaluări
  • EDITURA Matrixrom
    EDITURA Matrixrom
    Document6 pagini
    EDITURA Matrixrom
    Andrei Profir
    Încă nu există evaluări
  • Elveţia
    Elveţia
    Document9 pagini
    Elveţia
    Andrei Profir
    Încă nu există evaluări
  • Elveţia
    Elveţia
    Document9 pagini
    Elveţia
    Andrei Profir
    Încă nu există evaluări
  • Pedologia
    Pedologia
    Document6 pagini
    Pedologia
    Andrei Profir
    Încă nu există evaluări