Az illusztrált önkormányzási kézikönyv pascal on-line

Online bemutató Pascal

A fájlok kezeléséhez szükséges eljárások és funkciók

Az alábbiakban olyan eljárásokat és funkciókat ismertetünk, amelyek bármilyen fájlokkal használhatóak. A gépelt, szöveges és nem típusú fájlokkal való munkát a következő szakaszokban tárgyaljuk.

Bezárja a fájlt, de az ASSIGN eljárással korábban beállított fájlnévhez tartozó fájlváltozók társulása megmarad. A forgalom formátuma:

Új fájl létrehozásakor vagy egy régi fájl kibővítésénél az eljárás biztosítja, hogy minden új rekord tárolódjon a fájlban, és a fájl a könyvtárban van regisztrálva. A ZÁRÁS műveletek automatikusan végrehajtásra kerülnek az összes nyitott fájlra vonatkozóan, amikor a program véglegesen megszűnik. Mivel a fájlváltozat a fájlváltozóval mentett, a fájl újraindítható az ASSIGN eljárás további használata nélkül.

Átnevezi a fájlt. A forgalom formátuma:

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

itt <новое имя> - Az új fájlnévvel ellátott string kifejezés. Az eljárás végrehajtása előtt zárja be a fájlt, ha korábban megnyitotta a RESET, REWRITE vagy APPEND eljárásokat.

Elpusztítja a fájlt. A forgalom formátuma:

Az eljárás végrehajtása előtt zárja be a fájlt, ha korábban megnyitotta a RESET, REWRITE vagy APPEND eljárásokat.

A következő programrész azt mutatja, hogyan használhatja a RENAME és a CLOSE rutinokat a fájlok feldolgozásakor. Tegyük fel, hogy módosítani szeretnénk egy olyan fájlt, amelynek neve tartalmazza a NAME változót. A szerkesztés előtt meg kell győződnie arról, hogy a kívánt fájl a lemezen van-e, és átnevezi-e a fájl kiterjesztését a VAK-val (biztonsági másolat). Ha a kiterjesztéssel rendelkező fájl már létezik, törölni kell.

Megjegyzés: ellenőrizze a fájl létezését. Ebben a példában a WAC szükséges, mivel a hivatkozás

hibát okozhat, ha ez a fájl létezik.

Törli a fájl belső pufferét, és így garantálja a lemezen lévő összes fájl legutóbbi módosításának megőrzését. A forgalom formátuma:

A Turbo Pascal fájlhoz való bármilyen hozzáférést néhány pufferen keresztül végzik el, amely a fájlkomponens (rekord) belső ábrázolásának és a DOS-ban tárolt adattárolási formátumnak a lemezen való megjelenítéséhez szükséges. A FLUSH eljárás során minden új rekord lemezre kerül. Az eljárást figyelmen kívül hagyja, ha a fájlt a RESET eljárással történő olvasásra kezdeményezte.

Funkció EOF (<ф. п.>). BOOLEAN.

Logikai függvény ellenőrzi a fájl végét. TRUE értéket ad vissza, ha a fájl mutatója a fájl végén található. Írás közben ez azt jelenti, hogy a következő összetevő hozzá lesz adva a fájl végéhez, amikor elolvassa a fájlt.

Módosítsa az aktuális könyvtárat. A forgalom formátuma:

itt <путь> - Az alapértelmezett könyvtár elérési útját tartalmazó karakterlánc kifejezés.

Lehetővé teszi az aktuális könyvtár (az alapértelmezett könyvtár) nevének meghatározását. A forgalom formátuma:

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

itt <устройство> - egy WORD típusú kifejezés. amely az eszköz számát tartalmazza: 0 - az eszköz alapértelmezés szerint, 1 - A meghajtó, 2 - B meghajtó stb .;

<каталог> - egy STRING típusú változó, amelyben a megadott meghajtón lévő aktuális könyvtár elérési útja visszaadódik.

Új könyvtárat hoz létre a megadott meghajtón. A forgalom formátuma:

itt <каталог> - egy STRING típusú kifejezés, amely meghatározza a könyvtár elérési útját. Utónév az úton, azaz Az újonnan létrehozott könyvtár neve nem lehet egy már létező könyvtár neve

Törli a könyvtárat. A forgalom formátuma:

A törölni kívánt könyvtárnak üresnek kell lennie, pl. nem tartalmaznak az alacsonyabb szintű fájlokat vagy könyvtárakat.

Funkció IORESULT: WORD.

Visszaadja az utolsó I / O művelet feltételes karakterét.

Ha a művelet sikeres, a függvény nulla értéket ad vissza. A hibás I / O műveletek kódjait a Z. Függelék tartalmazza. Nem szabad elfelejteni, hogy az IORESULT csak akkor lesz elérhető, ha az I / O hibák automatikus ellenőrzése le van tiltva. A fordítói irányelv letiltja, és az irányelv magában foglalja az autokontrollt. Ha az automatikus vezérlés le van tiltva, és az I / O művelet hibát okozott, akkor a hibajelzés be van állítva, és az összes későbbi I / O hívás blokkolva marad, amíg az IORESULT funkció meg nem szól.

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

A megadott meghajtón szabad helyet bájtban adja vissza. Egy függvény elérésekor a kifejezés <диск> A BYTE típus határozza meg a lemez számát: 0 - a készülék alapértelmezés szerint, 1 - A meghajtó. 2 - B meghajtó stb. A függvény -1 értéket ad meg, ha a nem létező lemez számát adja meg.

DISKSIZE függvény (<диск>). LONGINT.

A lemez teljes mérete bájtban vagy -1. ha nincs megadva egy nem létező lemez száma.

A megadott könyvtárban regisztrált első fájl attribútumait adja vissza. A forgalom formátuma:

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

itt <маска> - A fájlmaszkot tartalmazó karakterlánc;

<атрибуты> - a BYTE típusú kifejezés, amely a maszk finomítását tartalmazza (attribútumok); <имя> - SEARCHREC típusú változó, amelyben a fájl neve vissza fog térni.

A fájlmaszk létrehozásakor a következő DOS csere szimbólumokat használják:

* azt jelenti, hogy a szimbólum helyén a név vagy a fájl kiterjesztése megengedett (pl. nulla) megengedett szimbólumai lehetnek;

azt jelenti, hogy a szimbólum helyén a megengedett szimbólumok lehetnek.

*. * kiválasztja az összes fájlt a könyvtárból;

* -al. * kiválasztja az összes fájl nevét (cl.pas, cs! 2345, c.dat stb.);

A? .dat kiválasztja az a0.dat, az.dat stb. fájlneveket.

A maszkot megelőzheti egy út ". Például a parancsot

azt jelenti, hogy kiválaszthatja a .PAS kiterjesztésű összes fájlt a SUBDIR könyvtárból, amely a C meghajtón található; a SUBDIR könyvtár a DIR felső szintű könyvtárában van regisztrálva, amely viszont a gyökérkönyvtárba tartozik.

byte <атрибуты> Bináris biteket (biteket) tartalmaz, amelyek meghatározzák, hogy mely fájlok férhetnek hozzá a FINDFIRST eljáráshoz való hozzáférés során. A DOS modulban a fájl attribútumok deklarálása. TPU:

Kombinálva a biteket ebben a bájtban számos opció megadható, például $ 06 - minden rejtett és / vagy rendszerfájl kiválasztása.

A FINDFIRST eredményét egy SEARCHREC típusú változó visszaküldi. Ez a típus a DOS modulban található. A TPU a következő:

Töltse ki. tömb [1..21] byte;

Itt az Attr a fájl attribútuma (lásd fent);

Idő - a fájl létrehozásának vagy frissítésének időpontja; visszaad egy tömörített formátumban; Csomagolja ki a paramétert az UNPACKTIME eljárással (lásd alább);

Méret - a fájl hossza bájtban;

Név - név és fájl kiterjesztése. A TIME paraméter kicsomagolásához használja az eljárást

UNPACKTIME (Idő: Longlnt; var T: DateTime).

A DOS modulban. A TPU a következő típusú DateTime-et jelentette be:

A FINDFIRST eljáráshoz való hozzáférés eredménye a WORD típusú DOSERROR függvény segítségével ellenőrizhető, amely az alábbi értékeket adja vissza:

2 - a könyvtár nem található;

18 - a könyvtár üres (nincsenek meghatározott fájlok).

Visszaadja a következő fájl nevét a könyvtárban. A forgalom formátuma:

itt <сл.фаш> - a SEARCHREC típusú (lásd fent) rekord, amelyben a fájlra vonatkozó információ visszakerül.

A következő egyszerű program bemutatja a FINDFIRST és FINDNEXT eljárások használatát. A program az aktuális könyvtár összes PAS-fájljának listáját jeleníti meg:

míg a DosError = 0 megkezdődik

Visszaadja a fájl létrehozásának vagy frissítésének időtartamát. A forgalom formátuma:

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

itt <время> - A LONGINT típusú változó, amelyben az idő visszatért formában.

Új fájlt hoz létre a fájl létrehozásához vagy frissítéséhez. A forgalom formátuma:

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

itt <время> - idő és dátum egy tömörített formátumban.

Csomagoljon egy DATETIME típusú rekordot egy LONGINT típusú változóra egy eljárással

PACKTIME (var T: DateTime; var Idő: LongInt).

(A DA TETIME típusának leírását lásd fent).

Lehetővé teszi, hogy megkapja a fájl attribútumait. A forgalom formátuma:

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

itt <атрибуты> - egy WORD típusú változó, az alsó bájtban, amelybe a beállítandó fájlattribútumokat visszaadják.

Lehetővé teszi a fájl attribútumok beállítását. A forgalom formátuma:

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

FSEARCH: PATHSTR.

Keresi a fájlt a könyvtárlistában. Hívásformátum:

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

itt <имя> - a keresendő fájl neve (egy string kifejezés vagy egy PATHSTR típusú változó; a név előtte egy elérési út); <сп.каталогов> - azon könyvtárak listája, amelyben a fájlt keresik (string kifejezés vagy STRING típusú változó); a könyvtár nevét pontosvessző választja el.

A keresési eredményt az FSEARCH függvény visszaküldi a PATHSTR típusú karakterláncként. A sor tartalmazza az elérési utat és a fájlnevet, ha a keresés sikeres volt, különben üres karakterláncot kap.

A DOS.TPU PATHSTR típusát a következőképpen deklaráljuk:

Legyen például egy lemezen egy \ SUBDIR \ MYFILE.PAS fájl. Ezután, ha az aktuális könyvtár gyökérkönyvtár,

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

visszaadja a \ SUBDIR \ MYFILE.PAS és a

üres karakterláncot ad vissza. Ha azonban az aktuális könyvtár SUBDIR-ra van állítva, akkor mindkét esetben a MYFILE.PAS karakterlánc visszatér (ha a fájl az aktuális könyvtárban van, az elérési út nincs megadva a kimeneti vonalon).

"Megosztja" a fájl nevét, azaz. különálló paraméterként adja vissza a fájl elérési útját, annak nevét és kiterjesztését. A forgalom formátuma:

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

itt <файл> - A fájl specifikációját tartalmazó karakterlánc (kiterjesztéssel és esetleg az előző útvonalon);

<путь> - DIRSTR = STRING [67] típusú változó, amelyben a fájl elérési útja visszaadódik;

<имя> - NAMESTR = STRING [8] típusú változó, amelyben a fájl neve visszaadott;

<расширение> - EXTSTR = STRING [4] típusú változó, amelyben egy előző ponttal rendelkező kiterjesztés visszakerül.

Az eljárás nem ellenőrzi a megadott fájl meglétét a lemezen. A PATHSTR változó bemeneti paraméterként használható.

Funkció FEXPAND: PATHSTR.

Hozzáad egy fájlnevet a teljes specifikációhoz, azaz. az eszközt és az utat jelezve. Hívásformátum:

itt <файл> - egy string kifejezés vagy egy PATHSTR típusú változó.

A függvény nem ellenőrzi a megadott fájl jelenlétét a lemezen, hanem egyszerűen kiegészíti a fájlnevet a hiányzó paraméterekkel - az aktuális eszközzel és az aktuális könyvtár elérési útjával. Az eredményt a PATHSTR típusú karakterlánc visszaküldi.

Kapcsolódó cikkek