Ustvarite bazo podatkov z uporabo datoteke Delphi vtipkanih datotek

Preprosto povedano je datoteka binarno zaporedje neke vrste. V Delphi, obstajajo trije razredi mapa: vtipkani, besedilni in netipični. Vtipkane datoteke so datoteke, ki vsebujejo podatke določene vrste, kot so Double, Integer ali predhodno določena vrsta zapisa po meri. Besedilne datoteke vsebujejo berljive znake ASCII. Netipične datoteke se uporabljajo, kadar želimo datoteki naložiti čim manj strukture.

Vtipkane datoteke

Medtem ko so besedilne datoteke sestavljene iz vrstic, ki se končajo s CR / LF (#13#10) kombinacija, vtipkane datoteke so sestavljene iz podatkov, vzetih iz določene vrste podatkovne strukture.

Naslednja izjava na primer ustvari vrsto zapisa, imenovano TMember in niz spremenljivk zapisa TMember.

tip

 TMember = zapis

 Ime: vrvica[50];

E-naslov:
vrvica[30];

Objave: LongInt;
konec;

var Člani: matrika[1..50] od TMember; 

Preden lahko podatke zapišemo na disk, moramo razglasiti spremenljivko vrste datoteke. Naslednja vrstica kode razglasi spremenljivko datoteke F.

var F: datoteko TMember; 

instagram viewer

Opomba: Če želite ustvariti vtipkano datoteko v Delphiju, uporabimo naslednje skladnja:

var SomeTypedFile: datoteko SomeType

Osnovni tip (SomeType) za datoteko je lahko skalarni (npr. Double), vrsta matrike ali vrsta zapisa. Ne sme biti dolg niz, dinamični niz, razred, predmet ali kazalec.

Za začetek dela z datotekami iz Delphija moramo datoteko na disku povezati s spremenljivko datotek v našem programu. Za ustvarjanje te povezave moramo uporabiti Dodeli datoteko postopek za povezavo datoteke na disku s spremenljivko datoteke.

 AssignFile (F, 'Members.dat') 

Ko je vzpostavljena povezava z zunanjo datoteko, je treba spremeniti datoteko spremenljivko F, ​​da jo lahko pripravimo za branje in pisanje. Postopek Ponastavitev pokličemo, da odpremo obstoječo datoteko, ali Prepiši, da ustvari novo datoteko. Ko program zaključi obdelavo datoteke, jo je treba zapreti po postopku CloseFile. Ko je datoteka zaprta, se njena zunanja datoteka posodobi. Spremenljivko datoteke lahko nato povežete z drugo zunanjo datoteko.

Na splošno bi morali vedno uporabljati ravnanje z izjemami; pri delu z datotekami se lahko pojavijo številne napake. Na primer: če za datoteko, ki je že zaprta, pokličemo CloseFile, Delphi sporoči napako V / I. Po drugi strani pa, če poskušamo zapreti datoteko, vendar še nismo poklicali AssignFile, so rezultati nepredvidljivi.

Napišite v datoteko

Recimo, da smo napolnili niz članov Delphija z njihovimi imeni, e-poštnimi sporočili in številom objav ter želimo te podatke shraniti v datoteko na disku. Naslednji del kode bo delo:

var

 F: datoteko TMember;

i: celo število;
začeti

 AssignFile (F, 'members.dat');

 Prepiši (F);

poskusi

za j: = 1 do 50 stori

 Napišite (F, Člani [j]);

končno

 ZapriFile (F);

konec;konec; 

Preberi iz datoteke

Za pridobitev vseh informacij iz datoteke 'members.dat' bi uporabili naslednje Koda:

var

 Član: TMember

 F: datoteko TMember;začeti

 AssignFile (F, 'members.dat');

 Ponastavitev (F);

poskusi

medtem ko ne Eof (F) začeti

 Preberi (F, član);

{DoSomethingWithMember;}

konec;

končno

 ZapriFile (F);

konec;konec; 

Opomba: Eof je funkcija preverjanja EndOfFile. S to funkcijo poskrbimo, da ne poskušamo brati dlje od konca datoteke (onkraj zadnjega shranjenega zapisa).

Iskanje in določanje položaja

Do datotek se običajno dostopa zaporedno. Ko se datoteka prebere po standardnem postopku Branje ali zapisovanje po standardnem postopku Write, trenutni položaj datoteke preide na naslednjo številčno razvrščeno komponento datoteke (naslednji zapis). Do vtipkanih datotek lahko dostopate tudi naključno s pomočjo standardnega postopka Seek, ki premakne trenutni položaj datoteke na določeno komponento. The FilePos in Velikost datoteke funkcije lahko uporabite za določitev trenutnega položaja datoteke in trenutne velikosti datoteke.

{vrni se na začetek - prvi zapis}

 Iščite (F, 0);


{pojdite na 5. zapis}

 Iščite (F, 5);


{Skoči do konca - "za" zadnji zapis}

 Iščite (F, velikost datoteke (F)); 

Spremenite in posodobite

Pravkar ste se naučili pisati in brati celoten niz članov, kaj pa, če želite le poiskati 10. člana in spremeniti e-pošto? Naslednji postopek naredi natanko tako:

postopek ChangeEMail (konst RecN: celo število; konst Nova elektronska pošta: vrvica) ;var DummyMember: TMember;začeti

{dodelitev, odprt, blok za obdelavo izjem}

 Iščite (F, RecN);

 Preberi (F, DummyMember);

 DummyMember. E-pošta: = NewEMail;

{branje se premakne na naslednji zapis, moramo

vrnite se na prvotni zapis in nato napišite}
 Iščite (F, RecN);

 Pišite (F, DummyMember);

{close file}konec;

Dokončanje naloge

To je to - zdaj imate vse, kar potrebujete za opravljanje svoje naloge. Podatke o članih lahko napišete na disk, jih lahko preberete nazaj, nekatere podatke (na primer e-pošto) pa lahko celo spremenite v "sredino" datoteke.

Pomembno je, da ta datoteka ni Datoteka ASCII, takole izgleda Beležnica (samo en zapis):

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

instagram story viewer