Documente online.
Username / Parola inexistente
  Zona de administrare documente. Fisierele tale  
Am uitat parola x Creaza cont nou
  Home Exploreaza

Limbajul Pascal

Informatica



ALTE DOCUMENTE

Versiunea: 283/14.04.2003
Introducere in Sistemul de Operare Linux
Customizarea serviciilor XP
Reguli de setare si folosire a programului Direct Connect
Studierea schemei de structură a calculatorului şi funcţiei de baza a componentelor lui
INTERFATA GRAFICA A PROGRAMULUI EDSAT2K - MENIUL PRINCIPAL
INTERNETUL SI INTERNET EXPLORER
Explicatii rezolvare Stat de plata - Validari
CALCULATOARE NUMERICE 2
SERVICII IN RETELE

                                                                                                                                Prof.Martin Elena

Suport de curs pentru

Limbajul Pascal

Tema lectiei:FISIERE TEXT

Cuprins:

1.   Generalitati.Definitie.Clasificare

2.      Lucrul cu fisiere text

 

Continuturi:

1.      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

2.      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);

2.      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:

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

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

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

4.      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: 296
Apreciat:

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

Copiaza codul
in pagina web a site-ului tau.

 

Copyright © Contact (SCRIGROUP Int. 2010 )