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.