Izveidojiet datu bāzi, izmantojot Delphi ierakstīto failu failu

Vienkārši sakot, fails ir a binārā secība kāda veida. Iekšā Delfi, ir trīs klases failu: drukāts, teksts un nerakstīts. Ierakstītie faili ir faili, kas satur noteikta veida datus, piemēram, Double, Integer vai iepriekš definētu pielāgoto Record tipu. Teksta failos ir lasāmas ASCII rakstzīmes. Neizmantotos failus izmanto, ja vēlamies failam uzlikt pēc iespējas mazāk struktūras.

Ierakstītie faili

Kaut arī teksta faili sastāv no rindiņām, kas beidzas ar CR / LF (#13#10) kombinācija, drukāti faili sastāv no datiem, kas ņemti no noteikta veida datu struktūras.

Piemēram, šī deklarācija izveido ieraksta tipu ar nosaukumu TMember un TMember ierakstu mainīgo masīvu.

tips

 TMember = ieraksts

 Vārds: virkne[50];

e-pasts:
virkne[30];

Ziņas: LongInt;
beigas;

var Locekļi: masīvs[1..50] no TMember; 

Lai varētu ierakstīt informāciju diskā, mums jādeklarē faila tipa mainīgais. Nākamā koda rinda deklarē F faila mainīgo.

var F: datne TMember; 

Piezīme. Lai izveidotu drukātu failu Delphi, mēs izmantojam šādus veidus sintakse:

instagram viewer

var SomeTypedFile: datne SomeType

Faila bāzes tips (SomeType) var būt skalārs tips (piemēram, Double), masīva tips vai ieraksta tips. Tam nevajadzētu būt garai virknei, dinamiskam masīvam, klasei, objektam vai rādītājam.

Lai sāktu darbu ar failiem no Delphi, mums diskā esošais fails ir jāsaista ar faila mainīgo mūsu programmā. Lai izveidotu šo saiti, mums tas ir jāizmanto Piešķirt failu procedūra diska faila saistīšanai ar faila mainīgo.

 AssignFile (F, 'Members.dat') 

Kad ir izveidota asociācija ar ārēju failu, faila mainīgais F ir “jāatver”, lai sagatavotu to lasīšanai un rakstīšanai. Mēs saucam Reset procedūru, lai atvērtu esošo failu, vai Rewrite, lai izveidotu jaunu failu. Kad programma pabeidz faila apstrādi, fails ir jāaizver, izmantojot CloseFile procedūru. Pēc faila aizvēršanas tiek atjaunināts ar to saistītais ārējais fails. Pēc tam faila mainīgo var saistīt ar citu ārēju failu.

Kopumā mums vienmēr vajadzētu izmantot izņēmumu apstrāde; strādājot ar failiem, var rasties daudzas kļūdas. Piemēram: ja failam, kas jau ir slēgts, saucam par CloseFile, Delphi ziņo par I / O kļūdu. No otras puses, ja mēs mēģinām aizvērt failu, bet vēl neesam izsaukuši AssignFile, rezultāti ir neparedzami.

Rakstiet failā

Pieņemsim, ka mēs esam aizpildījuši masīvu Delphi dalībnieku ar viņu vārdiem, e-pastiem un ziņu skaitu, un mēs vēlamies saglabāt šo informāciju failā uz diska. Darbs tiks veikts ar šādu koda daļu:

var

 F: datne TMember;

i: vesels skaitlis;
sākt

 AssignFile (F, 'biedri.dat');

 Pārrakstīt (F);

mēģiniet

priekš j: = 1 uz 50 darīt

 Rakstīt (F, Biedri [j]);

beidzot

 CloseFile (F);

beigas;beigas; 

Lasīt no faila

Lai iegūtu visu informāciju no faila 'members.dat', mēs izmantosim šādus datus kods:

var

 Loceklis: TMember

 F: datne TMember;sākt

 AssignFile (F, 'biedri.dat');

 Atiestatīt (F);

mēģiniet

kamēr nē Eof (F) jāsāk

 Lasīt (F, loceklis);

{DoSomethingWithMember;}

beigas;

beidzot

 CloseFile (F);

beigas;beigas; 

Piezīme: Eof ir EndOfFile pārbaudes funkcija. Mēs izmantojam šo funkciju, lai pārliecinātos, ka nemēģinām lasīt tālāk par faila beigām (ārpus pēdējā glabātā ieraksta).

Meklēšana un pozicionēšana

Failiem parasti piekļūst secīgi. Kad fails tiek nolasīts, izmantojot standarta procedūru Lasīšana vai rakstīšana, izmantojot standarta procedūru Write, pašreizējā faila pozīcija tiek pārvietota uz nākamo skaitliski sakārtoto faila komponentu (nākamais ieraksts). Ierakstītajiem failiem var arī nejauši piekļūt, izmantojot standarta procedūru Meklēt, kas pašreizējo faila pozīciju pārvieto uz noteiktu komponentu. FilePos un Faila lielums funkcijas var izmantot, lai noteiktu pašreizējo faila atrašanās vietu un pašreizējo faila lielumu.

{atgriezties sākumā - pirmais ieraksts}

 Meklēt (F, 0);


{pāriet uz 5. ierakstu}

 Meklēt (F, 5);


{Pāriet uz beigām - "pēc" pēdējā ieraksta}

 Meklēt (F, FileSize (F)); 

Mainīt un atjaunināt

Jūs tikko iemācījāties rakstīt un lasīt visu dalībnieku klāstu, bet ko darīt, ja viss, ko vēlaties darīt, ir meklēt 10. dalībnieku un mainīt e-pastu? Nākamā procedūra izdara tieši to:

procedūra Mainīt e-pastu(const RecN: vesels skaitlis; const Jauns epasts: virkne) ;var DummyMember: TMember;sākt

{piešķirt, atvērt, izņēmumu apstrādes bloķēt}

 Meklēt (F, RecN);

 Lasīt (F, DummyMember);

 DummyMember. E-pasts: = NewEMail;

{lasīt pāriet uz nākamo ierakstu, mums tas ir jādara

atgriezties pie sākotnējā ieraksta, pēc tam rakstīt}
 Meklēt (F, RecN);

 Rakstīt (F, DummyMember);

{aizvērt failu}beigas;

Uzdevuma pabeigšana

Tas tā - tagad jums ir viss nepieciešamais sava uzdevuma veikšanai. Jūs varat rakstīt dalībnieku informāciju diskā, jūs varat tos lasīt atpakaļ, un jūs pat varat mainīt dažus datus (piemēram, e-pastu) faila "vidū".

Svarīgi ir tas, ka šis fails nav ASCII fails, tā tas izskatās Notepad (tikai viens ieraksts):

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

instagram story viewer