Turbo Pascal 7

Bármely programhoz két előre deklarált fájl áll rendelkezésre szabványos fájlváltozókkal: INPUT - az adatok olvasása a billentyűzetről és az OUTPUT - megjelenítés. A Pascal szabvány szerint ezeket a fájlokat kötelező megemlíteni a program fejlécében, például a következők szerint: PROGRAM NameOfProgram (input, output); A Turbo Pascal esetében ez nem szükséges, ezért el lehet hagyni a program címét.
Bármely más fájl, valamint a logikai eszközök csak a fájl megnyitásához szükséges speciális eljárás (logikai eszköz) után válnak elérhetővé a program számára. Ez az eljárás magában foglalja egy korábban kijelölt fájlváltozónak egy létező vagy újonnan létrehozott fájl nevével való társítását, valamint az információcsere irányát: az olvasást vagy a fájlba írást.
A fájlváltozó a fájlnévvel társul ahhoz, hogy elérje a standard eljárást ASSIGN: ASSIGN (<ф.п.>, <имя файла или л.у.>); itt <ф.п.> - fájl változó (a programban megadott helyes azonosító a fájl típusának változójaként);
<имя файла или л.у.> -- Olyan szöveges kifejezés, amely egy fájlnevet vagy egy logikai eszközt tartalmaz. Ha a fájlnév üres karakterláncként van megadva, például ASSIGN (f, ''). akkor az adatcsere irányától függően a fájlváltozó egy szabványos INPUT vagy OUTPUT fájlhoz kapcsolódik.

A fájlnév minden olyan karakterlánc típusú kifejezés, amelyet a nevek MS-DOS-ban (PC operációs rendszer) történő meghatározására vonatkozó szabályok szerint építettek:
  • a név legfeljebb nyolc engedélyezett karaktert tartalmaz; megengedett karakterek nagybetû és kisbetűs latin betûket, számokat és szimbólumokat tartalmaznak:
. @ # $% ^ () " - _
  • a név minden megengedett karakterrel kezdődik;
  • a nevet egy kiterjesztés követheti - maximum három engedélyezett karakter; A kiterjesztés, ha létezik, ponttól elkülönül a névtől.
A név megadását megelőzően a fájl nevezett elérési útja: a lemez neve és / vagy az aktuális könyvtár neve és a magasabb szintű könyvtárak nevei.
A lemez neve az A. Z. szimbóluma. Ezután kettőspontot helyeznek el. Az A és B nevek: hajlékonylemezeken lévő lemezmeghajtók, C: nevek. D: stb. - merevlemezekre. Ezek a nevek is utalnak egy vagy több virtuális lemezek létre a memória PC VDISK speciális parancs végrehajtása közben a fájl CONFIG.SYS automatikus telepítő lemez operációs rendszer.
Ha nincs megadva meghajtó neve, akkor az alapértelmezett eszköz az, amelyet az operációs rendszerbe telepítettek a program elindítása előtt.
A meghajtó neve a fájlot tartalmazó könyvtár nevével megadható. Ha a könyvtár nevét egy backslash előzi meg, akkor a fájl elérési útja a gyökérkönyvtárból indul, ha a vonal nem létezik - az alapértelmezetten a rendszerben telepített aktuális könyvtárból. A könyvtár nevét egy vagy több alsóbb szintű könyvtárnév követheti. Mindegyiknek elővigyázatosnak kell lennie. A fájl teljes elérési útja a fájlnévtől visszalépést választja el. A név maximális hosszúsága 79 karakterrel, például: Logikai eszközök

Szabványos PC hardver, mint a billentyűzet, a kijelző, a nyomtató berendezés (nyomtató) és input-output kommunikációs csatornák meghatározása a Turbo Pascal különleges nevek, az úgynevezett logikai eszközök. Mindegyikük a Turbo Pascal-ban potenciális forrásként vagy szöveges információ vevőként tekinthető.
CON - logikai név, amely meghatározza a konzolt - a billentyűzetet vagy a kijelzőt. A Turbo Pascal különbséget tesz ezen fizikai eszközök között az adatátvitel irányába: az adatok olvasása csak a billentyűzetből lehetséges, és csak a képernyőn rögzíthető. Így a CON logikai eszköz használatával lehetetlen például adatokat olvasni a PC képernyőn, bár ilyen hardver képesség létezik.
A billentyűzet bemenete pufferelt: a karakterek egy speciális karakterlánc-pufferbe kerülnek, mindaddig, amíg megnyomja a gombokat, amelyeket csak az Enter billentyű lenyomása után továbbít a programnak. A puffer bemenet lehetővé teszi a beviteli karakterlánc szabványos DOS eszközökkel való szerkesztését. Karakterek beírásakor a számítógép képernyőjén visszhangzik. A Turbo Pascal programban elolvashat minden olyan karaktert a billentyűzeten, beleértve az Enter billentyű által generált CR karaktert is. rögtön a megfelelő kulcs visszacsatolás nélküli megnyomása után.
A PRN a nyomtató logikai neve. Ha több nyomtató van csatlakoztatva a számítógéphez, az LPT1 logikai nevekhez fér hozzá. LPT2 és LPT3. A PRN és LPT1 nevek eredetileg szinonimák. A PRN nevet bármely más logikai eszközhöz rendelheti, amely képes információt fogadni.
Standard könyvtár modul PRINTER. a TURBO.TPL könyvtárban található. kijelenti az LST fájlváltozó nevét, és az LPT1 logikai eszközhöz társítja. Ez lehetővé teszi az egyszerű hozzáférést a nyomtatóhoz. Például a program kinyomtatja a "Hello world!" Kifejezést A nyomtatóhoz, és a logikai eszköz megnyitásához szükséges összes műveletet a PRINTER könyvtári egység végzi.
Az AUX a kommunikációs csatorna logikai neve, amelyet általában a számítógép más gépekhez történő csatlakoztatására használnak. A kommunikációs csatorna mindaddig képes fogadni és továbbítani az adatokat, de a programban bármikor csak az egyiket rendelheti hozzá. A PC-nek általában két kommunikációs csatornája van, amelyek a COM1 és COM2 logikai eszközök nevét adják. Kezdetben az AUX és COM1 nevek szinonimák.
A NUL az "üres" eszköz logikai neve. Ezt az eszközt leggyakrabban hibakeresési módban használják, és korlátlan kapacitású információ vevőkészülékként kezelik. A NUL információforrásként való elérésekor az EOF fájl vége kerül kiírásra.
Egy logikai eszközhöz egy fájlváltozóhoz való kötést az ASSIGN eljárás hajtja végre. például: a Turbo Pascal soha nem társítja a logikai eszközök nevét lemezfájlokkal, ebben az értelemben ezek a nevek fenntartva. Más szavakkal, például a PRN nevű lemezfájlhoz nem férhet hozzá. Mivel a Turbo Pascal mindig úgy értelmezi ezt a kérelmet, mint egy hivatkozás a nyomtatóra.

Fájlkezdeményezéssel indíthatja el az adatátvitel irányát. A Turbo Pascal programban megnyithat egy fájlt az olvasáshoz, az információk írásához, valamint az olvasáshoz és az íráshoz egyidejűleg.
Az olvasáshoz a fájl a normál RESET eljárással indul. RESET (<ф.п.>); itt <ф.п.> - fájlváltozó, amelyet korábban az ASSIGN eljárással társított egy meglévő fájl vagy logikai eszköz-vevő információval. Az eljárás során egy lemezfájl vagy logikai eszköz készül az információk olvasására. Ennek eredményeként a fájlhoz tartozó speciális mutató változó a fájl elejére mutat, azaz a 0-as sorozatszámmal rendelkező alkatrészhez.
Ha megpróbáljuk olvasni egy nem létező fájlból vagy logikai PRN eszközről. van egy futásidejű hiba, amely a WORD típusú IORESULT beépített funkciójának nem nulla értékével jelenthető a programnak. Például a következő programrész lehetővé teszi annak meghatározását, hogy létezik-e a szükséges fájl a lemezen: Ebben a töredékben az I / O hibák automatikus vezérlése le van tiltva a fordító direktíva használatával. Ha ezt nem teszi meg, akkor a fájl hiánya a program rendellenes megszüntetéséhez vezethet.
A Turbo Pascal hozzáférhetnek a beírt fájlokat, nyissa meg a RESET eljárás (vagyis az olvasás információ), a WRITE eljárás (vagyis az információ rögzítésére). Ez a szolgáltatás megkönnyíti a korábban létrehozott gépelt fájlok frissítését és szükség esetén bővítését. A RESET eljárással megnyitott szövegfájlokhoz. Nem használhatja a WRITE vagy a WRITELN eljárást.
A szabványos REWRITE eljárás (<ф.п.>) írja a fájllal vagy egy logikai eszközhöz, amely korábban egy fájlváltozóval társult <ф.п.>. Átírni eljárás nem kezdeményezi a felvétel az információ a már meglévő disk file: ebben az eljárásban a régi fájl törlődik, és nem számoltak be a program nem kerül továbbításra. Az információ fogadására új fájl készül, és a mutató értéke 0.
A standard APPEND (<ф.п.>) megkezdi a korábban létező szövegfájl írását annak kibővítésére, a fájl mutatójának vége felé. A APPEND eljárás csak szöveges fájlokra vonatkozik, pl. a fájlváltozónak TEXT típusúnak kell lennie (lásd fent). A APPEND eljárás nem indíthat írást egy beírt vagy nem típusú fájlba. Ha egy szövegfájlt már megnyitott a RESET vagy a REWRITE gombbal. a APPEND eljárással bezárja ezt a fájlt, és újra megnyitja, de már bejegyzések hozzáadásához.

A FÁJLOKKAL KAPCSOLATOS MŰKÖDÉSEKRE VONATKOZÓ 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. Eljárás BEZÁR. Bezárja a fájlt, de a fájlváltozó az ASSIGN eljárásban korábban beállított fájlnévvel társul. megmarad. A forgalom cirkulációja: CLOSE (<ф.п.>) Amikor létrehoz egy új vagy régi fájl rasshireyii eljárás megőrzi a fájl az összes új bejegyzéseket, és a regisztrációs fájl a könyvtárban, CLOSE eljárást funkciók végzik automatikusan kapcsolatos minden nyitott fájlt a szokásos befejezése a program. Mivel a kommunikáció fájl egy fájl változó tárolja, Fail lehet újra nyitni használata nélkül további Assign eljárás. A RENAME eljárás. Átnevezi a fájlt. A kérés 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 eljárásokat. REWRITE vagy APPEND. ERASE eljárás. Elpusztítja a fájlt. A forgalom formátuma: ERASE (<ф.п.>) Az eljárás végrehajtása előtt zárja be a fájlt, ha korábban megnyitotta a RESET eljárásokat. REWRITE vagy APPEND.
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 VAK szükséges, mivel a hívás átnevezése (fi, név_bak); hibát okozhat, ha ez a fájl létezik.
FLUSH eljárás. 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: FLUSH (<ф.п.>) A Turbo Pascal fájlhoz való bármilyen hozzáférést valamilyen pufferen keresztül kell végrehajtani, amely a fájlösszetevő (rekord) belső reprezentációjának és a lemezen található DOS-os adattárolás formátumának összeegyezteté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 - hogy a fájl kimerült. A CHDIR eljárás. Módosítsa az aktuális könyvtárat. Kezelés formája: CHDIR (<путь>) Itt <путь> -- Az alapértelmezett könyvtár elérési útját tartalmazó karakterlánc kifejezés. A GETDIR eljárás. Lehetővé teszi az aktuális könyvtár (az alapértelmezett könyvtár) nevének meghatározását. A fellebbezés 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 .;
<каталог> - STRING típusú változó. amelyben a megadott meghajtón lévő aktuális könyvtár elérési útja visszaadódik. Az MKDIR eljárás. Új könyvtárat hoz létre a megadott meghajtón. Forgalom formája: MKDIR (<каталог>) Itt <каталог> - 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. Az RMDIR eljárás. Törli a könyvtárat. A forgalom formátuma: RMDIR (<каталог>) 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. IORESULT funkció. 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. 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.

A gépelt fájlok bármely összetevőjének hossza szigorúan állandó, ami lehetővé teszi a mindegyikhez való közvetlen hozzáférést (azaz a komponensnek a sorozatszámhoz való hozzáférését).
Az I / O eljárások első elérése előtt a fájl mutatója a fájl elején található, és az első összetevőre a 0. számmal jelöli. Minden egyes olvasás vagy írás után a mutató a fájl következő összetevőjére kerül. Az I / O listákban lévő változóknak ugyanolyan típusúaknak kell lenniük, mint a fájlösszetevők. Ha a listában több ilyen változó van, a mutató eltolódik minden változat és a lemezfájl közötti adatcserélési művelet után. Eljárás READ. Biztosítja, hogy a gépelt fájl következő összetevőit leolvassák. A forgalom formátuma: READ (<ф.п.>,<сп.ввода>) Itt <сп.ввода> - egy olyan bemeneti lista, amely egy vagy több változót tartalmaz, amely ugyanolyan típusú, mint a fájlösszetevők. Fájlváltozó <ф.п.> Ezt meg kell mondani egy FÁJL. és az ASSIGN eljárással társítva van a fájlnévvel. a fájlt a RESET eljárással kell megnyitni. Ha a fájl kimerült, a READ elérése I / O hibát okoz. WRITE eljárás. Az adatok írására íródott. A kezelés formátuma: WRITE (<ф.п.>,<сп.вывода>) Itt <сп.вывода> - Olyan kimeneti lista, amely egy vagy több azonos típusú fájlt tartalmaz, mint a fájlösszetevők. Eljárás SEEK. A fájlmutatót áthelyezi a kívánt összetevőre. Forgalom formája: SEEK (<ф.п.>,) Itt - LONGINT típusú kifejezés. jelezve a fájlösszetevő számát. A fájl első része 0. szám. Az eljárás nem alkalmazható szöveges fájlokra. Funkció FILESIZE. Visszaadja a LONGINT típusú értéket. amely tartalmazza a fájlösszetevők számát. Kezelés formája: FILESIZE (<ф.п.>) A funkció nem használható szöveges fájlokhoz. Ha a mutatót a gépelt fájl végére kívánja helyezni, akkor írhat: search (FileVar, FileSize (FileVar)); ahol a FILEVAR a fájlváltozó. FILEPOS funkció. Visszaadja a LONGINT típusú értéket. amely a következő I / O művelettel feldolgozandó fájlösszetevő sorozatszámát tartalmazza. A kezelés formátuma: FILEPOS (<ф.п.>) A funkció nem használható szöveges fájlokhoz. A fájl első összetevője a sorozatszám 0.

Kapcsolódó cikkek