Hozzon létre egy adatbázist a Delphi gépelt fájljainak fájljával

Egyszerűen fogalmazva egy fájl a bináris sorrend valamilyen típusú. Ban ben Delphi, három osztály létezik fájl: gépelt, szöveges és gépelés nélküli. A gépelt fájlok olyan fájlok, amelyek egy bizonyos típusú adatokat tartalmaznak, például dupla, egész szám vagy korábban meghatározott egyéni rekord típus. A szöveges fájlok olvasható ASCII karaktereket tartalmaznak. Az el nem írt fájlokat akkor használjuk, amikor a lehető legkevesebb szerkezetet akarjuk elrendelni egy fájlra.

Gépelt fájlok

Míg a szöveges fájlok olyan sorokból állnak, amelyeket CR / LF (#13#10) kombináció, A gépelt fájlok egy adott adatszerkezet-típusból vett adatokból állnak.

Például a következő deklaráció létrehoz egy TMember nevű rekordtípust és egy TMember rekordváltozók tömbjét.

típus

 TMember = rekord

 Név: húr[50];

email:
húr[30];

Hozzászólások: LongInt;
vég;

var tagok: sor[1..50] nak,-nek TMember; 

Mielőtt megírhatnánk az információkat a lemezen, deklarálnunk kell egy fájltípus egy változóját. A következő kódsor F fájlváltozót deklarál.

instagram viewer
var F: fájl TMember; 

Megjegyzés: Gépelésű fájl létrehozásához a Delphi-ben a következőket használjuk szintaxis:

var SomeTypedFile: fájl sometype

A fájl alaptípusa (SomeType) lehet skalar típusú (például Double), tömb vagy rekord típus. Nem lehet hosszú karakterlánc, dinamikus tömb, osztály, objektum vagy mutató.

A Delphi fájlokkal való munka elindításához a lemezen lévő fájlokat össze kell kapcsolnunk a programban található fájlváltozóval. Ezt a linket létre kell hoznunk AssignFile eljárás a lemezen lévő fájl társításához egy fájlváltozóval.

 AssignFile (F, 'Members.dat') 

Miután létrehozták a társítást egy külső fájllal, az F fájlváltozót „ki kell nyitni” az olvasáshoz és az íráshoz való előkészítéshez. Reset eljárást hívunk meglévő fájl megnyitásához, vagy Rewrite új fájl létrehozásához. Amikor egy program befejezi a fájl feldolgozását, a fájlt a CloseFile eljárással kell bezárni. Egy fájl bezárása után a társított külső fájl frissül. A fájlváltozó ezután társítható egy másik külső fájlhoz.

Általában mindig használnunk kell kivétel kezelése; sok hiba fordulhat elő a fájlokkal való munka során. Például: ha egy bezárt fájlhoz hívjuk a CloseFile fájlt, a Delphi I / O hibát jelent. Másrészt, ha megpróbálunk bezárni egy fájlt, de még nem hívtuk meg az AssignFile fájlt, az eredmények kiszámíthatatlanok.

Írjon egy fájlba

Tegyük fel, hogy kitöltöttünk egy sor Delphi-tagot a nevükkel, e-mailekkel és hozzászólások számával, és ezeket az információkat egy fájlban szeretnénk tárolni a lemezen. A következő kódrész fogja elvégezni a munkát:

var

 F: fájl TMember;

i: egész szám;
kezdődik

 AssignFile (F, 'tagság.dat');

 Írja át (F);

próbáld ki

mert j: = 1 nak nek 50 csinál

 Írni (F, Tagok [j]);

végül

 CloseFile (F);

vég;vég; 

Olvassa el egy fájlból

Az összes információ beolvasásához a 'Members.dat' fájlból a következőket használjuk kód:

var

 Tag: TMember

 F: fájl TMember;kezdődik

 AssignFile (F, 'tagság.dat');

 Reset (F);

próbáld ki

míg nem Eof (F) kezdődik

 Olvassa el (F, Tag);

{DoSomethingWithMember;}

vég;

végül

 CloseFile (F);

vég;vég; 

Jegyzet: Az Eof az EndOfFile ellenőrző funkció. Ezt a funkciót arra használjuk, hogy megbizonyosodjunk arról, hogy nem a fájl végén (az utolsó tárolt rekordon túl) akarunk olvasni.

Keresek és helymeghatározás

A fájlok általában egymás után érhetők el. Ha egy fájlt a szokásos módon olvasnak vagy olvasnak, vagy a szokásos írási eljárással írják, akkor az aktuális fájlpozíció a következő szám szerint rendezett fájlkomponensre (a következő rekordra) kerül. A gépelt fájlok véletlenszerűen érhetők el a Seek szokásos eljárással is, amely az aktuális fájlhelyet egy meghatározott összetevőre mozgatja. Az FilePos és Fájl méret A funkciók segítségével meghatározható az aktuális fájlhely és az aktuális fájlméret.

{vissza a elejére - az első feljegyzés}

 Keresés (F, 0);


{menj az ötödik rekordhoz}

 Keresés (F, 5);


{Ugrás a végére - "az utolsó felvétel után"}

 Keresés (F, FileSize (F)); 

Változás és frissítés

Most megtudta, hogyan kell írni és elolvasni a tagok teljes tömbjét, de mi van, ha csak a 10. taghoz kíván keresni és megváltoztatni az e-mailt? A következő eljárás pontosan ezt teszi:

eljárás E-mailt változtatni(const RecN: egész szám; const Új Email: húr) ;var DummyMember: TMember;kezdődik

{hozzárendelés, nyitás, kivételkezelő blokk}

 Keresés (F, RecN);

 Olvassa el (F, DummyMember);

 DummyMember. E-mail: = NewEMail;

{Olvassa el a következő rekordot, meg kell tennünk

térjen vissza az eredeti rekordhoz, majd írjon}
 Keresés (F, RecN);

 Írni (F, DummyMember);

{bezárás}vég;

A feladat befejezése

Ennyi - most már van minden, amire szükség van a feladat végrehajtásához. A tagok adatait a lemezre írhatja, visszaolvashatja, és a fájl „közepén” akár az adatok (például e-mail) megváltoztatását is.

Fontos az, hogy ez a fájl nem egy ASCII fájl, így néz ki Jegyzettömb (csak egy rekord):

 .Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï.. 

instagram story viewer