Luo tietokanta käyttämällä Delphin kirjoitettua tiedostoa

Yksinkertaisesti sanottuna tiedosto on binaarinen sekvenssi jonkin tyyppisiä. Sisään Delfoi, on kolme luokkaa tiedosto: kirjoitettu, teksti ja kirjoittamaton. Typitetyt tiedostot ovat tiedostoja, jotka sisältävät tietyn tyyppisiä tietoja, kuten Tupla-, Kokonaisluku tai aiemmin määritelty mukautettu tietuetyyppi. Tekstitiedostot sisältävät luettavissa olevia ASCII-merkkejä. Kirjoittamattomia tiedostoja käytetään, kun haluamme asettaa tiedostolle mahdollisimman pienen rakenteen.

Kirjoitetut tiedostot

Vaikka tekstitiedostot koostuvat riveistä, jotka on päätetty CR / LF (#13#10) yhdistelmä, kirjoitetut tiedostot koostuvat tietyn tyyppisestä tietorakenteesta otetuista tiedoista.

Esimerkiksi seuraava ilmoitus luo tietuetyypin nimeltä TMember ja joukon TMember-tietuemuuttujia.

tyyppi

 TMember = ennätys

 Nimi: jono[50];

Sähköposti:
jono[30];

Viestit: LongInt;
pää;

var Jäsenet: ryhmä[1..50] of TMember; 

Ennen kuin voimme kirjoittaa tiedot levylle, meidän on ilmoitettava tiedostotyypin muuttuja. Seuraava koodirivi ilmoittaa F-tiedostomuuttujan.

instagram viewer
var F: tiedosto TMember; 

Huomaa: Luodaksesi tyypillinen tiedosto Delphiin, käytämme seuraavia syntaksi:

var SomeTypedFile: tiedosto sometype

Tiedoston perustyyppi (SomeType) voi olla skalaarityyppi (kuten Double), matriisityyppi tai tietuetyyppi. Sen ei pitäisi olla pitkä merkkijono, dynaaminen taulukko, luokka, objekti tai osoitin.

Aloittaaksesi Delphistä tulevien tiedostojen käsittelemisen, meidän on linkitettävä levyllä oleva tiedosto ohjelman muuttujaan. Tämän linkin luomiseen meidän on käytettävä AssignFile menettely levyn tiedoston liittämiseksi tiedostomuuttujaan.

 AssignFile (F, 'Members.dat') 

Kun assosiaatio ulkoisen tiedoston kanssa on luotu, tiedostomuuttuja F on ”avattava” sen valmistelemiseksi lukemista ja kirjoittamista varten. Kutsumme Reset-menettelytapaa avataksesi olemassa olevan tiedoston tai Kirjoita uudelleen luodaksesi uuden tiedoston. Kun ohjelma viimeistelee tiedoston käsittelyn, tiedosto on suljettava käyttämällä CloseFile-menettelyä. Kun tiedosto on suljettu, siihen liittyvä ulkoinen tiedosto päivitetään. Tiedostomuuttuja voidaan sitten liittää toiseen ulkoiseen tiedostoon.

Yleensä meidän tulisi aina käyttää poikkeusten käsittely; tiedostojen kanssa työskennellessä voi syntyä monia virheitä. Esimerkiksi: jos kutsumme CloseFile-tiedostoa jo suljettuun tiedostoon, Delphi ilmoittaa I / O-virheestä. Toisaalta, jos yritämme sulkea tiedoston, mutta emme ole vielä kutsuneet AssignFile-tiedostoa, tulokset ovat arvaamattomia.

Kirjoita tiedostoon

Oletetaan, että olemme täyttäneet joukon Delphin jäseniä heidän nimillään, sähköpostilla ja viestimäärillä ja haluamme tallentaa nämä tiedot levylle tiedostoon. Seuraava koodi suorittaa työn:

var

 F: tiedosto TMember;

i: kokonaisluku;
alkaa

 AssignFile (F, 'jäsenet.dat');

 Kirjoittaa uudelleen (F);

yrittää

varten j: = 1 että 50 tehdä

 Kirjoita (F, jäsenet [j]);

vihdoin

 CloseFile (F);

pää;pää; 

Lue tiedostosta

Kaikkien tietojen hakemiseksi 'jäsen.dat'-tiedostosta käytämme seuraavaa koodi:

var

 Jäsen: TMember

 F: tiedosto TMember;alkaa

 AssignFile (F, 'jäsenet.dat');

 Palauta (F);

yrittää

kun taas ei Eof (F) aloitetaan

 Lue (F, jäsen);

{DoSomethingWithMember;}

pää;

vihdoin

 CloseFile (F);

pää;pää; 

Huomautus: Eof on EndOfFile-tarkistustoiminto. Käytämme tätä toimintoa varmistaaksemme, että emme yritä lukea tiedoston lopun jälkeen (viimeisen tallennetun tietueen jälkeen).

Etsiminen ja paikannus

Tiedostoihin pääsy tapahtuu yleensä peräkkäin. Kun tiedosto luetaan vakioproseduurilla Lue tai kirjoitetaan käyttämällä standardimenetelmää Write, nykyinen tiedoston sijainti siirtyy seuraavaan numeerisesti järjestettyyn tiedostokomponenttiin (seuraava tietue). Tyypillisiä tiedostoja voidaan käyttää myös satunnaisesti standardimenettelyn Seek kautta, joka siirtää nykyisen tiedoston sijainnin määritettyyn komponenttiin. FilePos ja Tiedoston koko toimintojen avulla voidaan määrittää nykyinen tiedoston sijainti ja nykyinen tiedostokoko.

{palata alkuun - ensimmäinen levy}

 Etsii (F, 0);


{siirry viidenteen ennätykseen}

 Etsii (F, 5);


{Hyppää loppuun - "viimeisen levyn jälkeen"}

 Etsii (F, FileSize (F)); 

Muuta ja päivitä

Olet juuri oppinut kirjoittamaan ja lukemaan koko joukon jäseniä, mutta mitä jos haluat tehdä, on vain etsiä kymmenenteen jäseneen ja vaihtaa sähköposti? Seuraava toimenpide tekee juuri sen:

menettely Vaihda sähköposti(const RecN: kokonaisluku; const Uusi sähköposti: jono) ;var DummyMember: TMember;alkaa

{määritä, avaa, poikkeusten käsittelylohko}

 Etsii (F, RecN);

 Lue (F, DummyMember);

 DummyMember. Sähköposti: = NewEMail;

{lue siirtyy seuraavaan levyyn, meidän täytyy

palaa alkuperäiseen tietueeseen ja kirjoita sitten}
 Etsii (F, RecN);

 Kirjoita (F, DummyMember);

{sulje tiedosto}pää;

Tehtävän suorittaminen

Siinäpä - nyt sinulla on kaikki mitä tarvitset tehtävän suorittamiseen. Voit kirjoittaa jäsenten tiedot levylle, voit lukea ne takaisin, ja voit jopa muuttaa joitain tietoja (esimerkiksi sähköposti) tiedoston "keskellä".

Tärkeää on, että tämä tiedosto ei ole ASCII-tiedosto, näin se näyttää Muistilehtiö (vain yksi tietue):

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