Stvorite bazu podataka koristeći Delphijevu datoteku tipkanih datoteka

Jednostavno rečeno datoteka je binarni niz neke vrste. U Delphi, postoje tri razreda datoteka: kucano, tekstno i netipično. Upisane datoteke su datoteke koje sadrže podatke određene vrste, poput dvostrukog, cjelobrojnog ili prethodno definiranog prilagođenog tipa zapisa. Tekstualne datoteke sadrže čitljive ASCII znakove. Netipične datoteke koriste se kada želimo datoteci nametnuti najmanju moguću strukturu.

Upisane datoteke

Dok se tekstualne datoteke sastoje od redaka završenih s CR / LF (#13#10) kombinacija, tipkane datoteke sastoje se od podataka preuzetih iz određene vrste podataka.

Na primjer, sljedeća deklaracija stvara vrstu zapisa zvanu TMember i niz TMember zapisa varijabli.

tip

 TMember = snimiti

 Ime: niz[50];

E-mail:
niz[30];

Postova: LongInt;
kraj;

var članovi: red[1..50] od TMember; 

Prije nego što možemo napisati podatke na disk, moramo deklarirati varijablu vrste datoteke. Sljedeći redak koda proglašava varijablu F datoteke.

var F: spis od TMember; 

Napomena: Za stvaranje tipkane datoteke u Delphiju koristimo sljedeće sintaksa:

instagram viewer

var SomeTypedFile: spis od SomeType

Osnovni tip (SomeType) za datoteku može biti skalarni tip (poput Double-a), vrsta matrice ili tip zapisa. To ne bi trebao biti dugi niz, dinamički niz, klasa, objekt ili pointer.

Da bismo započeli raditi s datotekama iz Delphija, moramo povezati datoteku na disku s varijablom datoteke u našem programu. Za stvaranje ove veze moramo koristiti AssignFile postupak za pridruživanje datoteke na disku varijabli datoteke.

 AssignFile (F, 'Members.dat') 

Jednom kada se uspostavi veza s vanjskom datotekom, datotečnu varijablu F mora se otvoriti za pripremu za čitanje i pisanje. Pozivamo postupak Poništavanje radi otvaranja postojeće datoteke ili Prepiši za stvaranje nove datoteke. Kad program dovrši obradu datoteke, datoteku je potrebno zatvoriti primjenom postupka CloseFile. Nakon što se datoteka zatvori, pridružena se vanjska datoteka ažurira. Promjena datoteke tada se može povezati s drugom vanjskom datotekom.

Općenito, uvijek bi trebali koristiti rukovanje izuzetkom; pri radu s datotekama mogu se pojaviti mnoge pogreške. Na primjer: ako nazovemo CloseFile za datoteku koja je već zatvorena, Delphi izvještava o I / O pogrešci. S druge strane, ako pokušamo zatvoriti datoteku, ali još uvijek nismo pozvali AssignFile, rezultati su nepredvidljivi.

Zapišite u datoteku

Pretpostavimo da smo napunili niz članova Delphija s njihovim imenima, e-mailovima i brojem postova, a ove podatke želimo pohraniti u datoteku na disku. Sljedeći dio koda će uspjeti:

var

 F: spis od TMember;

i: cijeli broj;
početi

 AssignFile (F, 'members.dat');

 Prepisati (F);

probati

za j: = 1 do 50 čini

 Pišite (F, Članovi [j]);

konačno

 ZatvoriFile (F);

kraj;kraj; 

Čitanje iz datoteke

Za preuzimanje svih podataka iz datoteke 'members.dat' koristili bismo sljedeće kodirati:

var

 Član: TMember

 F: spis od TMember;početi

 AssignFile (F, 'members.dat');

 Resetiranje (F);

probati

dok ne Eof (F) započeti

 Pročitajte (F, član);

{DoSomethingWithMember;}

kraj;

konačno

 ZatvoriFile (F);

kraj;kraj; 

Bilješka: Eof je funkcija provjere EndOfFile. Ovu funkciju koristimo kako bismo bili sigurni da ne pokušavamo čitati izvan kraja datoteke (izvan posljednjeg pohranjenog zapisa).

Traženje i pozicioniranje

Datotekama se obično pristupa uzastopno. Kada se datoteka čita pomoću standardnog postupka Čitanje ili pisanje pomoću standardne procedure Write, trenutni položaj datoteke prelazi na sljedeću numerički uređenu komponentu datoteke (sljedeći zapis). Utipkanim datotekama može se pristupiti i nasumično putem standardnog postupka Seek koji pomiče trenutni položaj datoteke na zadanu komponentu. FilePos i Veličina datoteke funkcije se mogu koristiti za određivanje trenutnog položaja datoteke i trenutne veličine datoteke.

{Vrati se na početak - prvi zapis}

 Traži (F, 0);


{idite na 5. zapis}

 Traži (F, 5);


{Skoči na kraj - "nakon" posljednjeg zapisa}

 Traži (F, Veličina datoteke (F)); 

Promjena i ažuriranje

Upravo ste naučili pisati i čitati čitav niz članova, ali što ako sve što želite jest potražiti deseti član i promijeniti e-mail? Sljedeći postupak čini upravo to:

postupak Promijeni e-mail(const RecN: cijeli broj; const Novi e-mail: niz) ;var DummyMember: TMember;početi

{dodijeliti, otvoriti, blok za upravljanje iznimkama}

 Traži (F, RecN);

 Pročitajte (F, DummyMember);

 DummyMember. E-adresa: = NewEMail;

{čitanje prelazi na sljedeći zapis, moramo

vratite se na izvorni zapis, a zatim napišite}
 Traži (F, RecN);

 Pišite (F, DummyMember);

{zatvori datoteku}kraj;

Dovršavanje zadatka

To je to - sada imate sve što je potrebno za izvršavanje zadatka. Na disk možete upisati informacije članova, možete ih pročitati natrag, a neke podatke (primjerice e-poštu) možete promijeniti i u "sredini" datoteke.

Važno je da ta datoteka nije an ASCII datoteka, ovako izgleda blokčić za bilješke (samo jedan zapis):

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