Activitatea 1

Pe lângă tipurile de fișiere descrise, Pascal are mijloacele de a interacționa cu fișierele unei structuri ușor diferite - așa-numitele fișiere text. Introducerea de fișiere text distruge oarecum limbajul limbajului, dar vă permite să utilizați Pascal atunci când programați o clasă largă de sarcini non-numerice legate de procesarea informațiilor textuale.







În multe versiuni lingvistice, este posibilă stocarea fișierelor pe disc ca date de caractere. Când fișierul este citit în memoria aparatului, simbolurile fișierelor sunt convertite la tipul de date care este declarat în program. Fișierele cu date simbolice sunt numite fișiere text. Fișierele text sunt de tip text.

Structura structurii fișier text diferit de fișier convențional (care este în esență o secvență liniară de elemente de același tip), că conținutul fișierului text este privit ca o succesiune de linii de lungime variabilă, separate printr-o combinație specială, numită „sfârșitul liniei“. De obicei, această combinație este construit din cod gestionat "carriage return" (CR, Carriage Return, simbolul # 13), pentru care poate exista un cod de control "linia de alimentare" (LF, linia de alimentare, simbolul # 10). Un semn de la sfârșitul liniei este apăsând tasta Enter.

Fișierul text se termină cu un cod special "sfârșit de fișier" (simbol # 26). În cele mai multe cazuri, cunoașterea unei anumite codări a caracterelor de control nu este necesară datorită prezenței operațiilor de fișiere care iau în considerare automat aceste caractere.

Astfel, un fișier text este structural oarecum similar cu un "fișier de octet", cu diferența că, în plus față de informațiile despre conținut, există simboluri cu scop special.

Acesta poate fi reprezentat schematic după cum urmează:

Fiecare fișier de pe disc trebuie să fie asociat cu o variabilă de fișier, care este descrisă în funcție de tipul de fișier de pe disc. Reprezentantul aceluiași fișier text din programul Pascal este o variabilă de tip fișier, care trebuie descrisă cu tipul de text standard:

Notă. Textul cuvântului nu este un cuvânt rezervat, ci este considerat un identificator al tipului standard, împreună cu întregul, real, și așa mai departe.

Accesul la fișier în viitor se face printr-o variabilă de fișier.

Apoi trebuie să deschideți fișierul. Deschideți orice fișier pe care îl puteți citi și scrie. Pentru aceasta, există proceduri de resetare, rescriere.

De exemplu, permiteți crearea unui fișier text text.txt pe disc.

Pentru Turbo Pascal, descrierea și legarea variabilei f cu fișierul text.txt va arăta astfel:

aloca ([calea completă la fișierul pe disc]) - asociază fișierul de pe disc cu variabila de fișier f a tipului de text.







Notă. Procedura de atribuire nu trebuie utilizată pentru un fișier deschis.

Când numele fișierului de pe disc nu este specificat, parametrul f este asociat cu I / O standard. Dacă un nume gol este atribuit, atunci după apelarea resetării (f) f va indica fișierul de intrare standard și după accesarea rescrierii (f), f va indica un fișier de ieșire standard.

resetați ([variabila fișierului]); Deschideți fișierul pentru citire.

I / O pentru fișierele text respectă aceleași reguli generale ca și pentru fișierele tipizate comune; Cu toate acestea, există câteva caracteristici importante.

În primul rând, pentru un singur fișier text, nu puteți efectua simultan operațiuni de intrare și de ieșire. Aceasta înseamnă că, după deschiderea unui fișier text, procedura de resetare poate citi numai informațiile din fișier, după procedura de rescriere, scrie numai în fișier.

În al doilea rând, schimburile cu fișiere text sunt întotdeauna strict secvențiale, adică după citirea din fișier a unui element cu numărul de serie N, următoarea operație de citire va da un element cu numărul N + 1. Cu alte cuvinte, accesul direct la orice element al unui fișier text este imposibil; Pentru fișierele text, apelurile Seek, FilePos, FileSize nu sunt permise.

Citirea unui fișier este înțeleasă ca introducerea datelor din un fișier extern de pe disc în memoria RAM a aparatului. Datele fișierelor devin disponibile pentru program. Fișierul extern de la care se citesc datele se numește adesea fișierul de intrare.

Tehnica de bază de schimb de fișiere text este simbol-de-simbol input-output. Citește sau scrie toate personajele, atât cele informaționale cât și cele speciale.

Să arătăm un program simplu care citește un text. Acest program afișează o secvență de coduri de caractere care compun fișierul text.txt.

O altă caracteristică de a lucra cu fișiere text este abilitatea de a schimba direct valorile diferitelor tipuri de bază (pentru fișierele tipizate normal, tipul de parametri de citire și scriere trebuie să se potrivească cu tipul fișierului de bază). De exemplu, un fișier text poate fi scris6, de exemplu, un număr întreg sau un număr real. În acest caz, reprezentarea sa internă va fi transformată automat într-o linie de simboluri care formează imaginea acestui număr.

Luați în considerare un program simplu care citește numere întregi dintr-un fișier text și tipărește numai numerele paralele.

Sarcină. Scrieți un program pe care îl puteți utiliza pentru a crea un fișier text care conține

- valori de tip integer;

- valori de tip real;

- Valorile booleene.

Pentru cazurile de mai sus de a scrie informații arbitrare într-un fișier text în limbă, există posibilități suplimentare, care constau în stabilirea dimensiunii câmpului de înregistrare. Dacă, după variabila sau expresia care urmează a fi scrisă, se pune caracterele colon și după aceasta - orice expresie a unui tip întreg, câmpul va fi alocat valorii de ieșire a cărei dimensiune (numărul de caractere) va fi egală cu valoarea expresiei. Următorul program trivial arată în mod clar acțiunea indicatorului de câmp:

pentru i: = 8-12

Sarcină. Tastați programul, adăugați-l la ieșirea din conținutul fișierului text de pe ecran. Analizați rezultatele programului.

Gestionați valorile de plasare în fișiere text este foarte convenabil pentru formarea de fișiere structurate (liste, tabele, etc.), ca și în cazul în care imaginea este mai mică decât valoarea dimensiunii câmpului, este întotdeauna „presat“ la marginea sa dreaptă.

În plus, pentru tipurile reale, există o caracteristică suplimentară care vă permite să trimiteți un număr într-un format cu punct fix, ceea ce este mai evident decât formatul inițial în virgulă mobilă. Dacă după indicatorul de dimensiune a câmpului specificați o altă expresie de tip integer cu colon, atunci acesta va fi interpretat ca indicând numărul de poziții pentru partea fracționată a numărului.







Articole similare

Trimiteți-le prietenilor: