Manualul de auto-instruire ilustrat pascal on-line

Tutorial online Pascal

Proceduri și funcții pentru lucrul cu fișiere

Următoarele descriu procedurile și funcțiile care pot fi utilizate cu fișiere de orice fel. Specificațiile de lucru cu fișierele tipărite, cu text și cu fișierele netumite sunt discutate în secțiunile următoare.







Închide fișierul, dar asocierea variabilelor de fișiere cu numele fișierului setat anterior de procedura ASSIGN este păstrată. Formatul circulației:

Atunci când creați un fișier nou sau extindeți un fișier vechi, procedura asigură că toate fișierele noi sunt stocate în fișier și fișierul este înregistrat în director. Funcțiile de procedură ÎNCHIS se efectuează automat cu privire la toate fișierele deschise atunci când programul se termină în mod normal. Deoarece asocierea fișierului cu variabila fișierului este salvată, fișierul poate fi redeschis fără utilizarea suplimentară a procedurii ASSIGN.

Redenumesc fișierul. Formatul circulației:

RENAME (<ф.п.>, <новое имя>)

aici <новое имя> - O expresie de șir care conține noul nume de fișier. Înainte de a executa procedura, trebuie să închideți fișierul dacă a fost deschis anterior prin procedurile RESET, REWRITE sau APPEND.

Distruge fișierul. Formatul circulației:

Înainte de a executa procedura, trebuie să închideți fișierul dacă a fost deschis anterior prin procedurile RESET, REWRITE sau APPEND.

Următorul fragment de program arată cum puteți utiliza rutinele RENAME și CLOSE când lucrați cu fișiere. Să presupunem că doriți să editați un fișier al cărui nume conține variabila NAME. Înainte de editare, trebuie să vă asigurați că fișierul dorit se află pe disc și să îl redenumiți - înlocuiți extensia acestui fișier cu VAK (copie de rezervă). Dacă un fișier cu această extensie există deja, acesta trebuie șters.

Notă: verificați existența fișierului. WAC în acest exemplu este necesar, deoarece referința

va produce o eroare dacă acest fișier există.

Șterge bufferul intern al fișierului și, astfel, garantează păstrarea tuturor ultimelor modificări ale fișierului de pe disc. Formatul circulației:

Orice acces la fișierul din Turbo Pascal se realizează prin intermediul unui tampon, care este necesar pentru a reconcilia reprezentarea internă a componentei fișierului (înregistrarea) cu formatul de stocare a datelor în DOS-ul de pe disc. În timpul procedurii FLUSH, toate înregistrările noi vor fi de fapt scrise pe disc. Procedura este ignorată dacă fișierul a fost inițiat pentru citirea prin procedura RESET.

Funcția EOF (<ф. п.>). Boolean.

Funcția logică care testează sfârșitul unui fișier. Returnează TRUE dacă indicatorul de fișier este la sfârșitul fișierului. La scriere, aceasta înseamnă că următoarea componentă va fi adăugată la sfârșitul fișierului, atunci când citiți - că fișierul este epuizat.

Schimbați directorul curent. Formatul circulației:

aici <путь> - O expresie de șir care conține calea către directorul implicit.

Vă permite să determinați numele directorului curent (directorul implicit). Formatul circulației:

GETDIR (<устройство>, <каталог>)

aici <устройство> - o expresie de tip WORD. care conține numărul dispozitivului: 0 - dispozitivul implicit, 1 - unitatea A, 2 - unitatea B, etc;

<каталог> - o variabilă de tip STRING, în care se întoarce calea spre directorul curent de pe unitatea specificată.

Creează un nou director pe unitatea specificată. Formatul circulației:

aici <каталог> - o expresie de tip STRING care specifică calea spre director. Numele de familie de pe șosea, adică Numele directorului nou creat nu poate fi numele unui director deja existent

Șterge directorul. Formatul circulației:

Directorul care trebuie șters trebuie să fie gol, adică nu conține fișiere sau nume de directoare de nivel inferior.

Funcția IORESULT: WORD.

Returnează caracterul condiționat al ultimei operații I / O.

Dacă operația a reușit, funcția revine la zero. Codurile pentru operațiile de I / E eronate sunt prezentate în Anexa Z. Trebuie reținut faptul că IORESULT devine disponibil numai când este dezactivată auto-monitorizarea erorilor I / O. Directiva directivei compilatoare dezactivează și directiva include autocontrolul. Dacă autocontrolul este dezactivat și o operație I / O a cauzat o eroare, semnalizatorul de eroare este setat și toate apelurile I / O ulterioare sunt blocate până când este apelată funcția IORESULT.

DISKFREE (<диск>). LONGINT.







Returnează suma în octeți de spațiu liber pe unitatea specificată. Când accesați o funcție, expresia <диск> tip BYTE determină numărul discului: 0 - dispozitivul implicit, 1 - unitatea A. 2 - unitatea B, etc. Funcția returnează -1 dacă este specificat numărul unui disc inexistent.

Funcția DISKSIZE (<диск>). LONGINT.

Returnează dimensiunea completă a discului în octeți sau -1. dacă este specificat numărul unui disc inexistent.

Returnează atributele primului fișier înregistrat în directorul specificat. Formatul circulației:

FINDFIRST (<маска>, <атрибуты>, <имя>)

aici <маска> - O expresie de șir care conține masca de fișiere;

<атрибуты> - o expresie a tipului BYTE care conține o rafinare a măștii (atribute); <имя> - variabila de tip SEARCHREC, în care numele fișierului va fi returnat.

Când se formează masca de fișiere, se folosesc următoarele simboluri de înlocuire DOS:

* înseamnă că pe locul acestui simbol pot exista simboluri ale numelui sau extensiei fișierelor;

înseamnă că la locul acestui simbol poate fi unul dintre simbolurile permise.

*. * selectează toate fișierele din director;

cu *. * selectează toate fișierele cu nume care încep cu (cl.pas, cs! 2345, c.dat, etc);

a? .dat selectează numele fișierelor de tip a0.dat, az.dat etc.

Masca poate fi precedată de o cale ". De exemplu, comanda

înseamnă să selectați toate fișierele cu extensia .PAS din directorul SUBDIR, aflat pe unitatea C; directorul SUBDIR este înregistrat în directorul DIR de nivel superior, care la rândul său este inclus în directorul rădăcină.

octet <атрибуты> Acesta conține biți binari (biți) care specifică ce fișiere au acces la accesarea procedurii FINDFIRST. Iată cum sunt declarate atributele fișierelor în modulul DOS. TPU:

Prin combinarea biților în acest octet, puteți specifica o varietate de opțiuni, de exemplu $ 06 - selectați toate fișierele ascunse și / sau de sistem.

Rezultatul FINDFIRST este returnat într-o variabilă de tip SEARCHREC. Acest tip este în modulul DOS. TPU este definit după cum urmează:

Umple. array [1..21] de Byte;

Aici Attr este atributele fișierului (vezi mai sus);

Timp - momentul în care fișierul a fost creat sau actualizat ultima dată; se întoarce într-un format ambalat; Despachetați parametrul prin procedura UNPACKTIME (consultați mai jos);

Dimensiune - lungimea fișierului în octeți;

Nume - nume și extensie de fișier. Pentru a despacheta parametrul TIME, utilizați procedura

UNPACKTIME (Timp: Longlnt; var T: DateTime).

În modulul DOS. TPU a declarat următorul tip de DateTime:

Rezultatul accesării procedurii FINDFIRST poate fi verificat utilizând funcția DOSERROR de tip WORD, care returnează valorile:

Directorul 2 nu a fost găsit;

18 - directorul este gol (nu există fișiere specificate).

Returnează numele fișierului următor în director. Formatul circulației:

aici <сл.фаш> - o înregistrare de tip SEARCHREC (vezi mai sus), în care sunt returnate informațiile despre fișier.

Următorul program simplu ilustrează modul de utilizare a procedurilor FINDFIRST și FINDNEXT. Programul afișează o listă a tuturor fișierelor PAS din directorul curent:

în timp ce DosError = 0 începe

Returnează timpul în care fișierul a fost creat sau actualizat ultima dată. Formatul circulației:

GETFTIME (<ф.п.>, <время>)

aici <время> - O variabilă de tipul LONGINT, în care timpul este returnat într-un format ambalat.

Setează o nouă dată pentru crearea sau actualizarea unui fișier. Formatul circulației:

SETFTIME (<ф.п.>, <время>)

aici <время> - ora și data într-un format ambalat.

Împachetați o înregistrare de tip DATETIME într-o variabilă de tip LONGINT printr-o procedură

PACKTIME (var T: DateTime; var Ora: LongInt).

(Pentru o descriere a tipului de DA TETIME, vezi mai sus).

Vă permite să obțineți atributele unui fișier. Formatul circulației:

GETFATTR (<ф.п.>, <атрибуты>)

aici <атрибуты> - o variabilă de tip WORD, în octetul inferior al căruia sunt returnate atributele de fișier care urmează să fie setate.

Permite setarea atributelor fișierelor. Formatul circulației:

SETFATTR (<ф.п.>, <атрибуты>)

Funcția FSEARCH: PATHSTR.

Se caută un fișier în lista de directoare. Formatul apelului:

FSEARCH (<имя>, <сп.каталогов>)

aici <имя> - numele fișierului căutat (o expresie de șir sau o variabilă de tip PATHSTR; numele poate fi precedat de o cale); <сп.каталогов> - lista directoarelor în care fișierul este căutat (expresia de șir sau variabila de tip STRING); nume de directoare sunt separate prin punct și virgulă.

Rezultatul căutării este returnat de funcția FSEARCH ca un șir de tip PATHSTR. Linia conține calea și numele fișierului în cazul în care căutarea a avut succes, în caz contrar se returnează un șir gol.

Tipul PATHSTR din DOS.TPU este declarat astfel:

Permiteți, de exemplu, pe un disc să existe un fișier \ SUBDIR \ MYFILE.PAS. Apoi, în cazul în care directorul curent este un director rădăcină,

FSEARCH ("MYFILE, PAS", "SUB", "SUBDIR").

va returna șirul \ SUBDIR \ MYFILE.PAS și

returnează un șir gol. Cu toate acestea, dacă directorul curent este setat la SUBDIR, atunci în ambele cazuri, șirul MYFILE.PAS va reveni (dacă fișierul se află în directorul curent, calea către acesta nu este specificată în linia de ieșire).

"Distribuie" numele fișierului, adică returnează ca parametru separat calea către fișier, numele și extensia acestuia. Formatul circulației:

FSPLIT (<файл>, <путь>, <имя>, <расширение>)

aici <файл> - O expresie de șir care conține specificația fișierului (nume cu extensie și, eventual, cu calea anterioară);

<путь> - variabila de tip DIRSTR = STRING [67], în care se întoarce calea spre fișier;

<имя> - variabila de tip NAMESTR = STRING [8], în care numele fișierului este returnat;

<расширение> - variabila de tip EXTSTR = STRING [4], în care se întoarce o extensie cu un punct anterior.

Procedura nu verifică prezența fișierului specificat pe disc. Variabila PATHSTR poate fi utilizată ca parametru de intrare.

Funcția FEXPAND: PATHSTR.

Adaugă un nume de fișier la specificația completă, adică cu o indicație a dispozitivului și a căii. Formatul apelului:

aici <файл> - o expresie de șir sau o variabilă de tip PATHSTR.

Funcția nu verifică prezența fișierului specificat pe disc, ci doar completează numele fișierului cu parametrii lipsă - dispozitivul curent și calea către directorul curent. Rezultatul este returnat într-un șir de tip PATHSTR.







Articole similare

Trimiteți-le prietenilor: