Fișiere text în Delfi, Delfi, componenta Delfi, sursa delphi

Fișiere text în Delphi

Și să-mi scrie scrisori scrierii de mână fină, pentru că locul este mic într-un rucsac.

scrisori romantice cu Crearea flacăra pâlpâitoare a unei lumânări, din păcate, plecat pentru totdeauna. Deși unii adepți creative de stil epistolar persistă în ignoranță și încredere în gândurile lor vagi pe hârtie, acesta din urmă este acum cea mai mare parte utilizate în scopul propus, și anume pentru cifrele de pliere origami și publicarea de postere de asteptare pentru a proteja prietenul verde (care pentru noi este pădurea, nu crocodil și nu un Gena camarad beat).

Toate hard disk-uri noastre, flash drive, CD și DVD-ROM până la partea de sus ambalate cu fișiere. Fiecare dintre ele are un nume și - aproape întotdeauna - expansiunea care urmează ultimul punct în numele fișierului, și de obicei se referă la numirea fișierului și formatul datelor stocate în el.

În această lecție ne vom uita la fișiere text care constau în linii, cum ar fi cele pe care le-am învățat în ultima lecție. Ca și în text, precum și orice alte fișiere de date postate care pot fi stocate pe termen nelimitat pe disc, chiar și după terminarea lucrului cu aplicația în care a fost creat datele, și apoi îl descărcați din nou.

Fișiere text în Delfi, Delfi, componenta Delfi, sursa delphi

Când am studiat linia, apoi am aflat că diferite tipuri de siruri de caractere în moduri diferite sunt stocate în memoria calculatorului. Și s-ar putea fi surprins de faptul că orice siruri de caractere sunt stocate pe același disc, dar nu destul ca și în celulele de memorie.

Și astfel vedem că toate caracterele din șir sunt scrise fără modificări, dar la capătul liniei sunt doar 2 caractere - $ 0D și $ 0A (sau același lucru într-un număr zecimal mai familiar - # 13 și # 10). Ele sunt încă în zilele vechi desemnate imprimanta retur de car și o linie nouă. Acest anacronism păstrat până în prezent în fișiere text care nu știu despre imprimante.

Rămâne să vedem modul în care liniile sunt scrise într-un mod bizar, astfel încât să ia în considerare operațiile de bază cu fișiere text - de a le salva pe disc și de boot în aplicație. Ei nu vă va da probleme dacă doar să urmați „rețeta“.

Indiferent dacă vom păstra un fișier sau încărcați-l, primul lucru pe care trebuie să declare o variabilă de tip textfile fișier:

Acesta este de obicei notată cu litera F (de la cuvântul File, File), dar acest lucru este opțional. Este această variabilă va fi pseudonimul fișierului propriu-zis.

Apoi, trebuie să asociați fișierul cu un nume de variabilă a fișierului utilizând procedura

Este mai ușor de înțeles un exemplu specific.

Așa cum puteți asocia fișierul nostru cu un «osh_frc_v.txt» variabilă fișier (deoarece calea de fișier nu este specificat, fișierul trebuie să fie localizat în același folder ca și aplicația în sine!).

Acum puteți deschide un fișier pentru citire sau scriere.

Pentru a citi fișierul specificat trebuie să existe pe disc. Pentru a-l deschide, utilizați procedura

Procedura de resetare (var F: file); (În exemplul nostru - Reset (F)), și puteți descărca datele. Acestea vor fi citite din prima linie.

Dacă fișierul a fost deschis anterior, acesta va prima blocat în mod automat, astfel încât să nu piardă datele, și apoi redeschis.

Pentru a salva datele din fișier, utilizați procedura

Procedura de rescriere (var F: file); (În exemplul nostru - rescriere (F);)

Acesta va crea un nou fișier cu numele specificat și deschideți-l pentru scris. Fii atent: dacă fișierul cu acest nume există deja pe disc, acesta va fi distrus! Prin urmare, mai sigur de a scrie date într-un fișier existent funcție

funcționa Append (var F: Text): Integer; (În exemplul nostru - Append (F);)

În acest caz, noua linie va fi adăugat la dosar după ultimul rând, astfel încât toate datele vechi nu vor fi afectate.

4. Pentru a scrie date într-un fișier de proceduri sunt

Procedura de scriere (var F: fișier [;. P1; Pn]);

Procedura WriteLn (var F: fișier [;. P1; Pn]);

Consolele sunt scrise parametri opționali, care sunt expresii ale următoarelor tipuri: char, string, PChar, întreg, real, boolean. Astfel, într-un fișier text poate fi înregistrat nu numai caractere, cuvinte, linii, dar, de asemenea, numărul de (tipul logic în fișierul de ieșire cuvinte adevărate și false atunci când scrieți expresii). Numărul de expresii din lista de ieșire, poate fi orice.

În cazul în care stochează o linie de procedură scriere de fișiere de date de tipuri diferite, ele vor fi scrise între ele, fără spații sau alte separatoare. Procedura WriteLn face același lucru, dar apoi se închide linia în fișierul (adăugat la sfârșitul de caractere de linie $ $ 0D 0A).

Scrie șirul în ghilimele (dar fără ghilimele!). Sau același lucru:

De asemenea, puteți amesteca constantele și variabilele:

Dacă aveți o mare nevoie, puteți scrie în numărul de linii și constantele logice:

Apoi va apărea linia de pe disc:

Și să-mi scrie scrisori de scriere de mână bine!

Toate numerele atunci când scrieți la dosar trebuie să fie separate unul de altul prin cel puțin un spațiu, o filă, sau la sfârșitul liniei de cod.

Procedura cu un singur parametru - writeln (F) - completează doar linia fără a scrie nimic în ea.

Scrie proceduri writeln și să înceapă să scrie date la prima linie a fișierului, apoi writeln secvențial se mută la a doua linie, a treia (!) - și așa mai departe până la sfârșitul fișierului. Cu ajutorul lor, nu puteți salva datele în orice linie a fișierului, dar puteți înregistra numărul necesar de linii goale proceduri writeln (F), și apoi să scrie în jos rândul.

Procedura trebuie să citească date dintr-un fișier text:

Consolele sunt scrise parametri opționali, care sunt variabilele de următoarele tipuri: char, string, integer, real, PChar. Numărul variabilelor din lista de intrare poate fi orice.

Vom folosi de multe ori a doua procedură (readln) - să ia în considerare întregul lor șir la variabila șir specificat:

În cazul în care o linie conține alte tipuri de date separate printr-un spațiu, de exemplu, „123 321 TRUE», ele pot fi considerate după cum urmează:

Ca urmare a acestei operațiuni, valoarea variabilei întreg n este numărul 123, o variabilă întreg m - numărul 321, un șir de o variabila - string „TRUE“ (valoarea nu poate fi considerată o variabilă logică!).

Nu uita să urmeze tipurile adecvate de variabile și date care urmează să fie citite, sau o eroare!

În cazul în care procedura readln citește numai porțiunea de date a liniei (în lista variabilelor de intrare este mai mică decât șirul), apoi restul liniei va fi omisă.

În cazul în care variabilele atunci când procedura este absentă - readln (F);, - atunci linia curentă în fișierul, iar datele sunt transmise din următoarea descriere linia de citit.

Dacă șirul este citit în tipul de variabilă sau PChar șir scurt și are mai multe caractere decât au spus că lungimea maximă a șirului, șirul de intrare este trunchiat.

Când introduceți un caracter dintr-un fișier într-o variabilă de tip char se citește doar 1 caracter, inclusiv finaluri de linie.

Citiți procedurile readln și începe să citească datele din prima linie a fișierului, apoi readln secvențial se mută la linia de roi OMC, o treime (!) - și așa mai departe până la sfârșitul fișierului. Cu ajutorul lor, este imposibil de a citi date dintr-o linie arbitrară a fișierului, dar poate pierde numărul dorit de rânduri procedura readln (F) a, și apoi să-și asume linia dorită.

5. După terminarea operației de fișier ar trebui să fie închis procedură:

Procedura de CloseFile (var F: fișier); (în exemplul nostru - CloseFile (F);)

Ajuta proiectul! Spune-i unui prieten despre acest site: