Salvestusandmetüüpide mõistmine ja kasutamine Delphis

Komplektid on kõik korras massiivid on suurepärased.

Oletame, et tahame oma programmeerimisringkonnas luua 50 ühemõõtmelist massiivi 50 liikme jaoks. Esimene massiiv on nimede jaoks, teine ​​e-kirjade jaoks ja kolmas meie kogukonda üleslaaditavate failide (komponentide või rakenduste) arvu jaoks.

Igal massiivil (loendil) oleks sobivad indeksid ja palju koodi, et hoida kõiki kolme loendit paralleelselt. Muidugi võiksime proovida ühe kolmemõõtmelise massiiviga, kuid kuidas oleks selle tüübiga? Me vajame nimede ja e-kirjade jaoks stringi, kuid üleslaadimiste arvu jaoks täisarvu.

Sellise andmestruktuuriga töötamise viis on kasutada Delphi plaadistruktuur.

TMember = rekord...

Näiteks loob järgmine deklaratsioon kirje tüüp TMember, mida saaksime meie puhul kasutada.

Sisuliselt a salvestusandmete struktuur võib segada mis tahes Delphi sisseehitatud tüüpi sealhulgas kõik teie loodud tüübid. Kirjetüübid määratlevad erinevat tüüpi üksuste püsikogud. Iga üksus või põld, on nagu muutuja, mis koosneb nimest ja tüübist.

instagram viewer

TMemberi tüüp sisaldab kolme välja: stringi väärtus nimega Nimi (liikme nime hoidmiseks), stringi tüübi väärtus kutsus e-post (ühe e-kirja jaoks) ja täisarv (kardinal) nimega Postitused (meie e-kirjade arvu hoidmiseks kogukond).

Kui oleme kirje tüübi seadistanud, võime muutuja kuulutada tüübiks TMember. TMember on muutujate jaoks sama hea muutujatüüp kui mis tahes Delphi 'sisseehitatud tüübid, näiteks keelpill või täisarv. Märkus: TMemberi tüüpi deklaratsioon ei eralda mälu väljadele Nimi, e-post ja Postitused;

TMemberi kirje eksemplari tegelikuks loomiseks peame deklareerima TMemberi tüüpi muutuja, nagu järgmises koodis:

Kui rekord on olemas, kasutame DelphiGuide väljade eraldamiseks punkti.

Märkus: ülaltoodud kooditükki saab ümber kirjutada, kasutades koosmärksõna.

Nüüd saame DelphiGuide'i väljade väärtused AMemberile kopeerida.

Rekordi ulatus ja nähtavus

Vormi (rakenduse osa), funktsiooni või protseduuri deklaratsioonis deklareeritud kirje tüübi ulatus on piiratud plokiga, milles see deklareeritakse. Kui kirje deklareeritakse üksuse liidese osas, hõlmab see ulatust, mis hõlmab kõiki muid üksusi või programme, mis kasutavad ühikut, kus deklaratsioon toimub.

Arhiiv Record

Kuna TMember toimib nagu mis tahes muu Object Pascali tüüp, võime kuulutada kirje muutujate massiivi:

Märkus: toimige järgmiselt kuulutab välja ja initsialiseerib Delphis püsiva arhivaalide hulga.

Rekordid väljadena

Kuna kirje tüüp on seaduslik nagu iga teine ​​Delphi tüüp, võime dokumendi välja olla kirje ise. Näiteks võiksime luua ExpandedMemberi, et jälgida, mida liige koos liikmeteabega edastab.

Kogu kirje jaoks vajaliku teabe täitmine on nüüd kuidagi raskem. TExpandedMemberi väljadele pääsemiseks on vaja rohkem punkte (punkte).

Salvestage väljadega "Tundmatud"

Kirjetüübil võib olla variant (mitte segi ajada variandi tüüpi muutujaga). Variantkirjeid kasutatakse näiteks siis, kui soovime luua kirje tüübi, millel on väljad erinevat tüüpi andmeid, kuid me teame, et me ei pea kunagi kõiki välju kasutama ühes kirjes näiteks. Lisateavet kirjete Variant osade kohta leiate Delphi abifailidest. Kirjetüübi variantide kasutamine ei ole tüübi suhtes ohutu ega ole soovitatav programmeerimispraktika, eriti algajatele.

Variantide kirjed võivad siiski olla üsna kasulikud, kui leiate end kunagi olukorrast, kus neid kasutada.