Looge andmebaas, kasutades Delphi sisestatud failide faili

Lihtsamalt öeldes on fail a binaarne jada mingit tüüpi. Sisse Delphi, seal on kolm klassi faili: trükitud, tekst ja kirjutamata. Tüüpfailid on failid, mis sisaldavad teatud tüüpi andmeid, näiteks topelt-, täisarv- või varem määratletud kohandatud kirje tüüp. Tekstifailid sisaldavad loetavaid ASCII märke. Teksti sisestamata faile kasutatakse siis, kui soovitakse kehtestada failile võimalikult väike struktuur.

Trükitud failid

Kui tekstifailid koosnevad CR / LF-iga lõpetatud ridadest (#13#10) kombinatsioon, trükitud failid koosnevad teatud tüüpi andmestruktuuri andmetest.

Näiteks loob järgmine deklaratsioon kirjetüüpi nimega TMember ja TMember-i kirje muutujate massiivi.

tüüp

 TMember = rekord

 Nimi: nöör[50];

e-post:
nöör[30];

Postitused: LongInt;
lõpp;

var Liikmed: massiiv[1..50] of TMember; 

Enne teabe kettale kirjutamist peame deklareerima failitüübi muutuja. Järgmine koodireal deklareerib F-faili muutuja.

var F: toimik TMember; 

Märkus. Delfis trükitud faili loomiseks kasutame järgmist süntaks:

var SomeTypedFile: toimik Mõni tüüp

instagram viewer

Faili põhitüübiks (SomeType) võib olla skalaar tüüp (nagu Double), massiivi tüüp või kirje tüüp. See ei tohiks olla pikk jada, dünaamiline massiiv, klass, objekt ega osuti.

Delphi failidega töötamise alustamiseks peame linkima kettale oleva faili meie programmi failimuutujaga. Selle lingi loomiseks peame kasutama AssignFile protseduur kettale faili seostamiseks failimuutujaga.

 AssignFile (F, 'Members.dat') 

Kui seos välise failiga on loodud, tuleb faili muutuja F avada, et seda lugemiseks ja kirjutamiseks ette valmistada. Kutsume olemasoleva faili avamiseks Reset-protseduuri või uue faili loomiseks kirjutame ümber. Kui programm lõpetab faili töötlemise, tuleb fail sulgeda, kasutades protseduuri CloseFile. Pärast faili sulgemist värskendatakse sellega seotud välist faili. Seejärel saab failimuutuja seostada mõne teise välise failiga.

Üldiselt peaksime alati kasutama erandi käsitlemine; failidega töötamisel võib tekkida palju vigu. Näiteks: kui kutsume faili, mis on juba suletud, CloseFile, teatab Delphi I / O tõrkest. Teisest küljest, kui proovime faili sulgeda, kuid pole veel nimeks AssignFile kutsutud, on tulemused ettearvamatud.

Kirjutage faili

Oletame, et oleme täitnud hulga Delphi liikmeid nende nimede, e-kirjade ja postituste arvuga ning soovime selle teabe salvestada kettale faili. Töö teeb järgmine kood:

var

 F: toimik TMember;

i: täisarv;
alustada

 AssignFile (F, 'liikmed.dat');

 Kirjuta ümber (F);

proovida

jaoks j: = 1 kuni 50 teha

 Kirjuta (F, liikmed [j]);

lõpuks

 CloseFile (F);

lõpp;lõpp; 

Loe failist

Kogu teabe saamiseks failist 'liikmed.dat' kasutame järgmist kood:

var

 Liige: TMember

 F: toimik TMember;alustada

 AssignFile (F, 'liikmed.dat');

 Lähtesta (F);

proovida

samas mitte Eof (F) alustage

 Loe (F, liige);

{DoSomethingWithMember;}

lõpp;

lõpuks

 CloseFile (F);

lõpp;lõpp; 

Märge: Eof on EndOfFile'i kontrollimise funktsioon. Kasutame seda funktsiooni veendumaks, et me ei ürita lugeda faili lõpust kaugemale (peale viimast salvestatud kirjet).

Otsimine ja positsioneerimine

Failidele pääseb tavaliselt juurde järjestikku. Kui faili loetakse standardprotseduuri abil Loetakse või kirjutatakse tavaprotseduuri kirjutamise abil, liigub faili praegune asukoht järgmisele numbriliselt järjestatud failikomponendile (järgmine kirje). Tüüpfailidele pääseb juurde juhuslikult ka tavaprotseduuri otsimise kaudu, mis teisaldab faili praeguse asukoha määratud komponenti. FilePos ja FileSize funktsioone saab kasutada faili praeguse asukoha ja praeguse faili suuruse määramiseks.

{tagasi algusesse - esimene kirje}

 Otsige (F, 0);


{mine viiendale rekordile}

 Otsige (F, 5);


{Hüppa lõppu - "pärast" viimast kirjet}

 Otsige (F, FileSize (F)); 

Muutke ja värskendage

Olete just õppinud, kuidas kirjutada ja lugeda kogu liikmete arvu, kuid mis siis, kui soovite vaid kümnendat liiget otsida ja e-posti aadressi muuta? Järgmine protseduur teeb täpselt nii:

protseduur Muuda meiliaadressi(const RecN: täisarv; const Uus Email: nöör) ;var DummyMember: TMember;alustada

{määrake, avage, erandite käsitlemise plokk}

 Otsige (F, RecN);

 Loe (F, DummyMember);

 DummyMember. E-post: = NewEMail;

{Loe edasi järgmisele plaadile, peame

pöörduge tagasi algse kirje juurde ja kirjutage siis}
 Otsige (F, RecN);

 Kirjuta (F, DummyMember);

{sulge fail}lõpp;

Ülesande täitmine

Nii see on - nüüd on teil kõik, mida vajate oma ülesande täitmiseks. Saate liikmete andmeid kettale kirjutada, seda tagasi lugeda ja isegi mõnda faili keskel asuvat teavet (näiteks e-posti aadressi) muuta.

Oluline on see, et see fail pole ASCII fail, nii see välja näeb Märkmik (ainult üks kirje):

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