Vytvorte databázu pomocou súboru typových súborov spoločnosti Delphi

Jednoducho vložte súbor binárna postupnosť nejakého typu. v Delphi, existujú tri triedy súbor: napísané, textové a netypované. Typické súbory sú súbory, ktoré obsahujú údaje konkrétneho typu, napríklad Double, Integer alebo predtým definovaný vlastný typ záznamu. Textové súbory obsahujú čitateľné znaky ASCII. Netypizované súbory sa používajú, keď chceme na súbor uložiť najmenšiu možnú štruktúru.

Zadané súbory

Kým textové súbory pozostávajú z riadkov zakončených CR / LF (#13#10) kombinácia, typizované súbory pozostávajú z údajov získaných z konkrétneho typu dátovej štruktúry.

Napríklad nasledujúce vyhlásenie vytvorí typ záznamu s názvom TMember a pole premenných záznamu TMember.

typ

 TMember = rekord

 Názov: povrázok[50];

e-mail:
povrázok[30];

Príspevky: LongInt;
koniec;

var členovia: rad[1..50] z TMember; 

Predtým, ako môžeme tieto informácie zapísať na disk, musíme deklarovať premennú typu súboru. Nasledujúci riadok kódu deklaruje premennú súboru F.

var F: súbor TMember; 

Poznámka: Na vytvorenie napísaného súboru v Delphi používame nasledujúce syntax:

instagram viewer

var SomeTypedFile: súbor SomeType

Základný typ (SomeType) pre súbor môže byť skalárny typ (napríklad Double), typ poľa alebo typ záznamu. Nemalo by ísť o dlhý reťazec, dynamické pole, triedu, objekt alebo ukazovateľ.

Aby sme mohli začať pracovať so súbormi od spoločnosti Delphi, musíme prepojiť súbor na disku so súborovou premennou v našom programe. Na vytvorenie tohto odkazu musíme použiť AssignFile Postup priradenia súboru na disku k premennej súboru.

 AssignFile (F, 'Members.dat') 

Po vytvorení spojenia s externým súborom musí byť súborová premenná F „otvorená“, aby sa pripravila na čítanie a zápis. Voláme Reset procedúru pre otvorenie existujúceho súboru alebo prepísať pre vytvorenie nového súboru. Keď program dokončí spracovanie súboru, musí sa súbor zavrieť pomocou postupu CloseFile. Po zatvorení súboru sa aktualizuje pridružený externý súbor. Premenná súboru potom môže byť spojená s iným externým súborom.

Vo všeobecnosti by sme mali vždy používať spracovanie výnimiek; Pri práci so súbormi sa môže vyskytnúť veľa chýb. Napríklad: ak zavoláme CloseFile pre súbor, ktorý je už zatvorený, Delphi ohlási chybu I / O. Na druhej strane, ak sa pokúsime zatvoriť súbor, ale ešte sme nezavolali AssignFile, výsledky sú nepredvídateľné.

Zápis do súboru

Predpokladajme, že sme vyplnili pole členov Delphi svojimi menami, e-mailmi a počtom príspevkov a tieto informácie chceme uložiť do súboru na disku. Prácu vykoná nasledujúci kód:

var

 F: súbor TMember;

i: celé číslo;
začať

 AssignFile (F, 'members.dat');

 Prepísať (F);

vyskúšať

pre j: = 1 na 50 robiť

 Zápis (F, členovia [j]);

konečne

 CloseFile (F);

koniec;koniec; 

Čítanie zo súboru

Na získanie všetkých informácií zo súboru 'members.dat' by sme použili nasledujúce kód:

var

 Člen: TMember

 F: súbor TMember;začať

 AssignFile (F, 'members.dat');

 Reset (F);

vyskúšať

keď nie Eof (F) začínam

 Prečítajte (F, člen);

{DoSomethingWithMember;}

koniec;

konečne

 CloseFile (F);

koniec;koniec; 

Poznámka: Eof je funkcia kontroly EndOfFile. Túto funkciu používame na zabezpečenie toho, že sa nesnažíme čítať za koniec súboru (za posledný uložený záznam).

Hľadanie a umiestnenie

K súborom sa zvyčajne pristupuje postupne. Ak sa súbor načíta pomocou štandardnej procedúry Čítanie alebo zápis pomocou štandardnej procedúry Write, aktuálna pozícia súboru sa presunie na nasledujúcu numericky usporiadanú zložku súboru (nasledujúci záznam). K zadaným súborom je možné pristupovať aj náhodne pomocou štandardnej procedúry Seek, ktorá presunie aktuálnu pozíciu súboru na zadaný komponent. FilePos a Veľkosť súboru Pomocou funkcií môžete určiť aktuálnu polohu súboru a aktuálnu veľkosť súboru.

{vrátiť sa na začiatok - prvý záznam}

 Hľadať (F, 0);


{prejdite na piaty záznam}

 Hľadať (F, 5);


{Preskočiť na koniec - "za" posledný záznam}

 Hľadať (F, FileSize (F)); 

Zmena a aktualizácia

Práve ste sa naučili písať a čítať celú škálu členov, ale čo keď chcete urobiť, je vyhľadať 10. člena a zmeniť e-mail? Ďalší postup robí presne toto:

procedúra Zmeniť e-mail(const RecN: celé číslo; const Nový email: povrázok) ;var DummyMember: TMember;začať

{priradiť, otvoriť, blok spracovania výnimiek}

 Hľadať (F, RecN);

 Prečítajte (F, DummyMember);

 DummyMember. E-mail: = NewEMail;

{read presunie na ďalší záznam, musíme

prejdite späť na pôvodný záznam a potom napíšte}
 Hľadať (F, RecN);

 Zápis (F, DummyMember);

{zavrieť súbor}koniec;

Dokončenie úlohy

To je všetko - teraz máte všetko, čo potrebujete na splnenie vašej úlohy. Informácie členov môžete zapisovať na disk, môžete ich prečítať späť a niektoré údaje (napríklad e-mail) môžete dokonca zmeniť v „strede“ súboru.

Dôležité je, že tento súbor nie je Súbor ASCII, takto vyzerá notepad (iba jeden záznam):

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