Lucrul cu fișiere, lucru cu pascal, articole, programare - programare c, delphi, c #

Ei bine, ne mutăm intens. Astăzi - așa cum am promis, dosarele. Până acum, doar teoria pe care trebuie să o stăpânești (există o mulțime de ea), practica va fi în următoarea ediție.







În Pascal lucrul cu fișiere se realizează prin tipuri speciale, care până acum nu ne-au fost cunoscute. Acestea sunt tipuri de fișiere care determină tipul fișierului, adică indică conținutul acestuia. Cu această variabilă, căreia i se atribuie tipul cerut, și se lucrează cu toate fișierele - deschiderea, scrierea, citirea, închiderea etc.

Când lucrați cu fișiere, există o anumită ordine de acțiuni, care trebuie respectate. Iată toate aceste acțiuni:

  1. Crearea (descrierea) unei variabile de fișier;
  • Legarea acestei variabile la un anumit fișier de pe disc sau la un dispozitiv de intrare / ieșire (ecran, tastatură, imprimantă etc.);
  • Deschiderea unui fișier pentru scriere sau citire;
  • Acțiuni cu fișierul: citire sau scriere;

    Primul lucru pe care vreau să-l acordăm este abilitatea de a asocia o variabilă de fișier nu numai cu un fișier fizic pe suportul de stocare, ci și cu dispozitivul. Ca atare, sunt utilizate alias-urile obișnuite ale dispozitivelor DOS. Iată principalele două:

  • PRN este o imprimantă. Când scrieți pe acest dispozitiv, veți primi informații despre imprimantă.
  • În continuare, vreau să acordăm atenție ultimei etape - închiderea dosarului. În principiu, o condiție opțională pentru fișierele din care citim datele. Dacă nu îl închidem, nu va produce nici o eroare, nici o consecință. Cu toate acestea, asigurați-vă că ați închis fișierul dacă l-am înregistrat. Faptul este că dacă scriem date într-un fișier pe disc și uităm să-l închidem - informațiile nu vor fi salvate. Acesta (informația) este plasat într-un buffer temporar, care va fi scris pe disc numai atunci când fișierul este închis.


    Tipuri de variabile de fișier

    Înainte de a începe să lucrați cu fișiere, să vedem ce variabile există pentru a lucra cu ele. În Turbo Pascal există trei tipuri de astfel de variabile care determină tipul fișierului. Iată aceste tipuri:

  • Fișierul _ any_type - așa-numitele fișiere "tipizate", adică fișiere care au un tip. Acest tip determină ce tip de informație este conținută în fișier și este specificat în parametrul_type_type. De exemplu, dacă scriem acest lucru:

    F: Fișier cu întreg;

  • Fișier - fișier nedorit. Când specificăm fișierul ca tip de fișier, adică fără tipul:

    Că obținem un fișier "untyped", citit și scris care diferă de lucrul cu fișiere de alte tipuri. Aceste acțiuni se efectuează prin specificarea numărului de octeți de citit, precum și prin specificarea zonei de memorie în care se citesc aceste date. Acesta este subiectul unor probleme viitoare.

    Așadar, ați sortat tipurile de fișiere. Acum, să aruncăm o privire la acțiunile folosite pentru a lucra cu fișierele în ordine. Am vorbit despre ele mai sus.


    Asocierea unei variabile cu un fișier

    Cel mai universal pas. Se execută prin aceeași procedură pentru toate tipurile de fișiere, și anume procedura de atribuire.

    Atribuiți (_ variabila_file_tipului, "calea către fișier");

    După cum puteți vedea, variabilele sunt fie o variabilă de tip de fișier, fie o cale de fișier, care, conform regulilor DOS, nu poate depăși 79 de caractere. Iată un exemplu de utilizare a atribuirii.

    După cum puteți vedea, este foarte simplu și procedura însăși nu provoacă probleme. Să luăm acum în considerare următoarea etapă.

    Deschiderea unui fișier este un proces mai complicat decât obligarea unei variabile la acesta. Acesta ține cont de motivul deschiderii fișierului - pentru înregistrare sau citire, iar în funcție de tipul de fișier, procedurile efectuează diferite acțiuni.

    Cu toate acestea, acest proces nu este complicat și constă în utilizarea uneia dintre cele trei proceduri disponibile:







    Fișierul este deschis pentru citire. Ca parametru - o variabilă de fișier de oricare dintre tipurile enumerate mai sus. Poate fi un fișier text, tipărit sau unic. În cazul unui fișier text, acesta se deschide numai pentru citire. În cazul unui fișier tipărit și unic, acesta este deschis pentru citire și scriere.

    Această procedură deschide un fișier text (numai text!) Pentru scriere. Deasupra, am spus că Resetare, când specificați un parametru Text, nu va permite scrierea de date prin deschiderea unui fișier pentru citire. Asta este, dacă utilizați un fișier text și doriți să îl înregistrați, trebuie să utilizați Append. Dacă citirea este Resetare. În alte cazuri, este necesar să faceți o procedură Resetare.

    De asemenea, rețineți că, dacă ați deschis fișierul anterior pentru citire, nu este necesar să îl închideți și să-l deschideți din nou pentru scriere. În acest caz, fișierul se închide și se deschide din nou. Când scrieți date într-un fișier atunci când îl deschideți cu această procedură, acestea sunt scrise la sfârșitul fișierului.

  • Rewrite (F) - creează un fișier nou sau suprascrie unul existent. Aveți grijă dacă nu doriți să ștergeți accidental fișierul dorit. Permiteți-mi să vă reamintesc că fișierul deschis cu această procedură va fi complet rescris.

    Metoda de verificare constă în două etape: folosind tastele compilator și funcția IOResult, care returnează o valoare din operația I / O executată exact. Ne vom ocupa rapid de această funcție, dar nu am întâlnit un astfel de lucru ca cheile de compilatoare, așa că vom trăi mai în detaliu.

    Cheile compilatorului sunt comutatoare obișnuite care controlează execuția programului, excluzând sau incluzând reacția la orice condiții. În cazul nostru, suntem interesați în starea când absent fizic fișierele necesare, sau în imposibilitatea de a accesa din alte motive. Pascal are multe chei, până acum vom studia una care este necesară pentru noi în acest moment.

    - includerea erorii de ieșire

    - dezactivați eroarea de ieșire

    De fapt, absența unui fișier este o eroare care este returnată de funcția IOResult. Dacă această funcție returnează 0, fișierul este deschis cu succes, fără erori. Iată o secvență de acțiuni necesare pentru a verifica prezența unui fișier:

    1. Legăm variabila cu fișierul;
  • Opriți afișarea erorilor pe ecran -
  • Deschideți fișierul de care avem nevoie;
  • Includeți rezultatul erorilor - permiteți-i să se urmărească în continuare;
  • Verificăm dacă IOResult revine la zero, atunci totul a fost calea și fișierul este deschis. În caz contrar, afișăm o eroare.
  • Iată un exemplu al unui astfel de program:

    Deasupra am vorbit de ce trebuie să închideți fișierul și când trebuie să faceți acest lucru. Închideți fișierul utilizând procedura Close (F). unde F este o variabilă de tip fișier. Această procedură este aceeași pentru toate tipurile de fișiere.


    Scrieți și citiți fișiere. Partea I

    Astăzi vreau să vorbesc despre scrierea și citirea textului și a fișierelor tipizate, în următoarea ediție, povestea merge despre citirea fișierelor fără tip. Deci, mergeți la prelucrarea directă a informațiilor despre fișier.

    Citirea fișierelor. Fișierele de citire se fac folosind procedurile binecunoscute Read and Readln. Ele sunt utilizate în același mod ca atunci când citiți informații de la tastatură. Singura diferență este că înainte de variabila, în care este plasată valoarea citită, se specifică variabila tipului de fișier (descriptor de fișier):

    Aici F este descriptorul fișierului, C este variabila (Char, String pentru text, orice tip pentru fișierele tipizate).

    De asemenea, vreau să menționez imediat una, poate cea mai importantă funcție atunci când citesc fișierele. Aceasta este o funcție de verificare pentru sfârșitul fișierului - Eof (F): Boolean ;. Ca parametru - o variabilă de fișier de orice tip. Funcția returnează TRUE dacă se ajunge la sfârșitul fișierului și FALSE altfel. Aici totul este foarte simplu, demonstrații de dragul de a scrie un mic program. Să avem un fișier text. Să tipărim și să calculam, de exemplu, numărul de spații:

    Cred că totul este clar aici. Continuăm să continuăm și să vedem cum să scriem fișierelor.

    Scrieți fișiere. Nu ați ghicit încă? Înregistrarea în fișiere se efectuează în același mod ca și scrierea pe ecran - folosind procedurile Scrieți și Writeln. Ca și în cazul citirii, descriptorul fișierului este scris înainte de variabila scrisă în fișier:

    Aici F este un descriptor, S este o variabilă.

    În acest caz, desigur, variabila trebuie să se potrivească cu tipul fișierului. De exemplu, să facem un alt program mic care să arate lucrul cu fișierele. De data aceasta, folosim deja fișierele tipizate, și anume cele formate din numere. Deci, avem un fișier care conține numere de tip Integer. Să sortăm aceste numere într-un fișier în ordine ascendentă.

    • Detașați fișierul tastat de la Integer; (verificați pentru o eroare etc.)
  • Citiți toate numerele din matrice (citiți până la sfârșitul fișierului)
  • Sortați matricea în ordine crescătoare;
  • Scrieți matricea sortată înapoi în fișier.
  • Acest program se dovedește:

    Programul este foarte simplu și funcționează bine cu fișierele tipizate. Ca o sortare de matrice, folosesc metoda bubble pentru a rescrie fisierul folosind ReWrite. Se pare că nu ar trebui să existe dificultăți. Vor fi probleme, scrieți. Dar pentru azi, poate, totul. Această informație va fi suficientă pentru dvs., în următoarea ediție vom aborda, după cum am spus, fișierele netumite și continuă să scrie programul "Notepad".

    Programare pentru manechine.







    Articole similare

    Trimiteți-le prietenilor: