Se poate trece la capitolul următor cu tasta ► și se poate reveni la un capitol precedent cu tasta ◄

Cum putem citi și scrie din/în fișiere folosind Pascal


<

C
a
p
i
t
o
l
u
l

a
n
t
e
r
i
o
r

<

Scrierea în fișiere

Avem nevoie de o variabilă de tip fișier, căruia îi atribuim un nume de fișier cu o locație pe discul local. Apoi pentru accesarea fișierului avem mai multe opțiuni:

- dacă fișierul nu există, putem să-l creăm, folosind REWRITE;

- dacă vrem să citim fișierul de la început, folosim RESET;

- dacă vrem să adăugăm informații fișierului deschis, folosim APPEND.

Scrierea într-un fișier se face folosindu-ne de instrucțiunile write și writeln.

Fișier PASCAL

 Programul va crea fișierul text.txt care va arăta astfel:

Fișier text creat în PASCAL

Citirea din fișiere

Citirea se face prin intermediul instrucțiunilor read și readln care își păstrează semnificația.

 Citirea din fișier în PASCAL

Procedeul pentru a deschide un fișier fie pentru scriere fie pentru citire este simplu:

  1. Facem legătura dintre variabila de tip fișier și fișierul de pe disc folosind ASSIGN.
  2. Declarăm modul de access la fișier:
    1. REWRITE - se folosește pentru scrierea fișierul și în acest mod fișierul va fi rescris. Dacă nu există, va fi creat. Dacă există... va fi șters.
    2. APPEND - deschide fișierul pentru scriere și poziționează cursorul la sfârșitul lui. Astfel orice text va fi adăugat, se va adăuga la sfârșitul fișierului.
    3. RESET - deschide fișierul pentru citire. Cursorul va fi poziționat la începutul fișierului.
  3. Facem operațiile de citire/scriere care ne interesează.
  4. Închidem legătura la fișier cu close. Foarte important! Dacă uităm se poate ca ceea ce am scris în fișier să ... nu fie acolo.

Câteva observații:

Dacă modul de lucru ales este fie REWRITE fie APPEND, atunci orice încercare de a folosi un read/readln va fi întâmpinat de o eroare la rularea programului în momentul executării instrucțiunilor.

Varianta inversă nu e la fel de verbală. Care variantă opusă? Când modul de lucru e dat de RESET și încercăm să scriem ceva în fișier. Pur și simplu nimica nu va fi scris.

Fișiere cu tip

Până acum am vorbit despre fișiere text, fișiere în care puteam scrie text, însă în PASCAL putem să ne folosim de fișiere cu tip, care ne pot fi de folos. Mult folos. Să vedem un exemplu:

Fișiere cu tip în Pascal

Începem declarând structura pe care o vrem folosindu-ne de tipul RECORD. Apoi declarăm o variabilă fișier în forma file of tipul definit de noi și, desigur, o variabilă temporară care să o folosim pentru a scrie în fișier.

Scrierea se face doar cu write căci writeln nu are sens în situația aceasta. Delimitarea unui element de următorul se face va automat și nu e nevoie de o linie nouă. De altfel, dacă folosim writeln vom primi o eroare la compilare.

Și ca fapt divers, cu acest program am scris 10 intrări similare în fișierul nostru.

Citirea

Citirea dintr-un fișier cu tip în Pascal

Avem aceeași ordine a pașilor ca și la citirea obșinuită însă cu o diferență. Seek. Această instrucțiune ne poziționează cursorul pe intrarea cu numărul introdus ca al doilea parametru. Atenție! Primul element are indicele 0, al doilea are indicele 1. De aceea am și scris că afișăm intrarea a treia când noi am trimis 2 ca al doilea parametru.

Dacă poziția la care cerem să fie mutat cursorul este mai mare decât numărul intrărilor existente, atunci vom fi întâmpinați de o eroare în timpul rulării programului la instrucțiunea de citire.


>

C
a
p
i
t
o
l
u
l

u
r
m
ă
t
o
r

>

Ți-a fost de ajutor ce am scris aici?
Hei, mersi de răspuns.