Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Limbajul Pascal

Informatica


Prof.Martin Elena

Suport de curs pentru

Limbajul Pascal



Tema lectiei:FISIERE TEXT

Cuprins:

Generalitati.Definitie.Clasificare

Lucrul cu fisiere text

Continuturi:

Turbo Pascal priveste hard-ware-ul exterior cu care lucreaza - imprimanta, tastatura, ecran, etc- ca periferice. Desi majoritatea au caracteristici diferite, programele solicita cai standard de comunicare cu ele. Solutia o reprezinta fisierele.

Pentru a stabili comunicatii, un program deschide un fisier de la periferic. Dupa aceea , transmite date si, daca este cazul, receptioneaza informatii. Cand operatia este incheiata,programul inchide fisierul

Definitie; Un fisier Pascal este o variabila speciala care permite comunicatii cu orice periferic.

Exista trei tipuri de fisiere Pascal;

fisiere text

fisiere cu tip

fisiere fara tip

Numarul componentelor fisierului nu este determinat de definitia sa

FISIERE TEXT

Acest tip de fisier contine caractere structurate pe linii ,fiecare linie fiind terminata cu marker-ul de sfarsit de linie ( end-of-line), starea de sfarsit de linie putand fi determinata cu ajutorul functiei Eoln. Marker-ul de sfarsit de linie este caracterul CTRL+Z.

In fisierele de tip text pot fi stocate atat valori de tip caracter sau string, cat si valori intregi sau reale.

a. Declararea unui fisier text: var nume_fisier:text;

b.      Accesul pentru fisierele text este secvential. Pentru a asocia variabila de tip fisier cu un fisier extern, se foloseste procedura ASSIGN(fisier,nume);nume este o succesiune de caractere care va identifica din punct de vedere fizic variabila fisier.

Obs. Asocierea ramane valabila pana la un nou apel al ASSIGN.

Apelul se termina cu eroare daca fisierul fizic este deschis in timpul apelului.

c.       Deschiderea unui fisier text se realizeaza cu una din urmatoarele rutine:

REWRITE(fisier) creeaza si deschide un fisier in vederea scrierii.

Obs. Apelul se termina cu eroare daca nu este loc suficient pe disc pentru noul fisier.In momentul apelului se initializeaza indicatorul de fisier cu valoarea 0 si se permit apoi operatii de scriere.

Daca fisierul s-a deschis prin executia acestei proceduri, operatiile de citire sunt permise numai dupa ce s-au facut scrieri.

RESET(fisier) Deschide un fisier existent in vederea citirii.

Obs. Daca fisierul este deschis in momentul apelului, acesta se inchide si apoi se redeschide.

APPEND(fisier deschide un fisier existent in vederea adaugarii de noi date

CLOSE(fisier) inchide fisierul, interzicand operatiile ulterioare de citire/scriere pana la o noua deschidere.

Obs. Daca la scrierea componentelor in fisier se omite inchiderea acestuia la sfarsitul prelucrarii, exista riscul ca ultimele informatii din zona tampon asociata fisierului sa nu se mai salveze in fisier.

Prelucrarile admise asupra unui fisier sunt:

crearea scrierea componentelor in fisier

exploatarea citirea si prelucrarea componentelor

actualizarea adaugarea, modificarea, stergerea unor componente prin operatii de citire/scriere.

Orice prelucrare incepe cu deschiderea fisierului si se incheie cu inchiderea sa- REWRITE/RESET respectiv CLOSE

Indicatorul asociat fisierului text cuprinde numarul de ordine (incepand de la 0 ) al caracterului curent ( caracterul care urmeaza sa fie prelucrat) din zona tampon ( buffer) asociata fisierului . Dimensiunea acesteia este, in general, 128 BYTES, dar poate fi modificata prin procedura SETTEXTBUF(fisier,buffer), unde buffer reprezinta in general un tablou de caractere ( buffer:array[1..10240] of char;) .

In unit-ul SYSTEM sunt declarate variabilele standard INPUT si OUTPUT de tip text.Aceste variabile sunt asociate implicit dispozitivului consola.Aceasta asociere se poate schimba prin folosirea procedurii ASSIGN.

Actualizarea unui fisier text presupune de obicei crearea unui nou fisier.Este posibil sa se adauge sau sa se stearga componente situate la sfarsitul fisierului (TRUNCATE(fisier) scrie un marcaj de sfarsit de fisier , in locul indicat de indicatorul de fisier).

Procedurile si functiile utilizate mai des sunt:

READ(fisier,lista_variabile); preia din fisierul specificat (daca lipseste se considera INPUT) o lista de valori care se stocheaza in ordine, in variabilele din lista_variabile;

Variabilele pot fi de tip char, string,intreg sau subdomeniu de intregi, sau real.

READLN(fisier,lista_variabile) neglijeaza caracterele ramase neasociate din linia curenta a fisierului fizic asociat variabilei fisier; in rest are acelasi efect cu READ.

WRITE(fisier,lista_expresii); se scriu valorile expresiilor date in fisierul fizic asociat variabilei fisier; daca acesta lipseste, se considera implicit OUTPUT

WRITELN(fisier,lista_expresii) are acelasi efect ca si WRITE, cu deosebirea ca scrie un marcaj de sfarsit de linie in fisierul fizic asociat.

CLOSE(fisier) se scrie in fisierul fizic marcajul de sfarsit de fisier.

EOF(fisier);bolean; functia returneaza TRUE daca s-a intalnit marcajul de sfarsit de fisier sau daca fisierul este vid;altfel, returneaza FALSE.

SEEKEOLN(fisier):boolean; daca indicatorul de fisier este initializat cu numarul de ordine al unui caracter egal cu ' ' sau TAB, se creste valoarea indicatorului astfel incat el sa indice un caracter diferit de spatiu sau TAB; returneaza TRUE cand caracterul cu al carui numar de ordine este initializat indicatorul, reprezinta un marcaj de sfarsit de linie sau fisier, altfel returneaza FALSE( deci se face un salt peste caracterele blanc sau TAB, spre deosebire de EOLN)

SEEKEOF(fisier):boolean; returneaza TRUE cand caracterul indicat de indicatorul de fisier (sarind peste blanc,TAB sau sfarsit de linie) este sfarsit de fisier

ERASE(fisier realizeaza stergerea fisierului fizic asociat variabilei fisier(acesta trebuie sa fie inchis in momentul apelului)

RENAME(fisier,nume_nou); redenumeste fisierul fizic asociat variabilei fisier cu noul nume;acesta trebuie sa fie inchis si sa nu existe un altul avand numele nume_nou.

Exemplu: Urmatorul program permite crearea,scrierea,citirea si redenumirea unui fisier text. Aceste operatii sunt selectate dintr-un meniu utilizator din care se selecteaza SCRIERE sau CITIRE.Dupa aceea programul solicita introducerea numelui fisierului cu care se va opera.

Daca s-a selectat operatia de scriere, programuil verifica daca pe disc exista un fisier cu numele introdus de utilizator; in cazul in care functia EXISTAFISIER returneaza true, programul deschide fisierul in modul APPEND, pentru a adauga noi date la sfarsitul acestuia, altfel se creeaza si se deschide unul nou cu procedura REWRITE>

Daca s-a selectat operatia de citire, programul asigneaza variabilei F numele introdus,deschide fisierul pentru citire (RESET) si citeste continutul acestuia.

Fisierul cu care s-a lucrat este inchis cu ajutorul procedurii CLOSE; daca se doreste schimbarea numelui , se apeleaza RENAME.

Program operatii_fisier_text;

Uses CRT,DOS;

Var sir,numefis,numenou:string[80];

F:text; Ch;char;

Function existafisier(numefis:pathstr):boolean;

Var f:file;

Begin

ASSIGN(f,numefis);

RESET(f);CLOSE(f);

existafisier=IORESULT=0

end;

Procedure citire;

Var nrlin:word;

Begin

Write('introduceti numele fisierului:'); Readln(numefis); ASSIGN(f,numefis); RESET(f);nrlin:=0;

While not eof(f) do begin

Inc(nrlin);write(nrlin:4,' ');

While not eof(f) do begin

Read(f,sir);write(sir)

End;

Readln(f);writeln;

End;

End;

Procedure scriere:

Begin

Writeln('scriere in fisier text');writeln;

Write('numele fisierului=');readln(numefis); ASSIGN(f,numefis);

If existafisier(numefis) then APPEND(f) else REWRITE(f);writeln;

Writeln('puteti incepe scrierea);

WINDOW(1,8,80,25);

Repeat

Readln(sir);writeln(f,sir)

Until sir='&'

End;

Procedure meniu;

Begin

Clrscr; writeln('S)criere'); writeln('C)itire'); ch:=UPCASE(READKEY);

If ch='S' then scriere else if ch='C' then citire else meniu;

End;

BEGIN

REWRITE(OUTPUT);

While not EOF(fisier) do begin 

While not EOLN(fisier) do begin

Read(fisier,c);

Write(c);

end

writeln; readln(fisier)

end;

CLOSE(fisier);

ADAUGARE la sfarsitul unui document existent

ASSIGN(fisier,'document');

APPEND(fisier);

While not EOF do begin readln(sir);

Writeln(fisier,sir); End;

CLOSE(fisier);

APLICATII cu fisiere text:

Sa se creeze un fisier text pe disc si sa se listeze la imprimanta;

Sa se adauge noi linii la sfarsitul fisierului text creat anterior;

Sa se stearga eventualele linii vide sau "albe"( formate numai din blancuri sau caractere TAB) din fisierul creat la 1.

Scrieti un program care citeste din fisierul INPUT.TXT un numar n si din fisierul NUMERE.TXT n numere intregi.Sa se ordoneze crescator cele n numere si sa se scrie elementele ordonate in fisierul OUTPUT.TXT.


Document Info


Accesari: 6568
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )