Pochopenie a používanie typov údajov záznamu v Delphi

click fraud protection

súpravy sú v poriadku, polí sú skvelí.

Predpokladajme, že chceme v našej programovej komunite vytvoriť tri jednorozmerné polia pre 50 členov. Prvé pole je pre mená, druhé pre e-maily a tretie pre počet odovzdaných súborov (komponentov alebo aplikácií) do našej komunity.

Každé pole (zoznam) by malo mať zodpovedajúce indexy a veľa kódu na udržiavanie všetkých troch zoznamov paralelne. Samozrejme by sme mohli vyskúšať jedno trojrozmerné pole, ale čo jeho typ? Potrebujeme reťazec pre mená a e-maily, ale celé číslo pre počet odovzdaných súborov.

Spôsob, ako pracovať s takouto dátovou štruktúrou, je použiť Delphi štruktúra záznamu.

TMember = Zaznamenať...

Napríklad nasledujúce vyhlásenie vytvára typ záznamu s názvom TMember, ktorý by sme mohli použiť v našom prípade.

V podstate a štruktúra dát záznamu môže kombinovať ktorýkoľvek z vstavaných typov Delphi vrátane všetkých typov, ktoré ste vytvorili. Typy záznamov definujú pevné zbierky položiek rôznych typov. Každá položka alebo lúka, je ako premenná pozostávajúca z mena a typu.

instagram viewer

Typ člena obsahuje tri polia: hodnotu reťazca nazvanú Názov (na držanie názvu člena), hodnotu typu reťazca s názvom e-mail (pre jeden e-mail) a celé číslo (kardinál) s názvom Príspevky (na zadržanie počtu príspevkov do našich komunita).

Keď nastavíme typ záznamu, môžeme deklarovať premennú typu TMember. TMember je teraz rovnako dobrým typom premennej ako ktorákoľvek z premenných Delphi 's vstavanými typmi ako String alebo Integer. Poznámka: vyhlásenie typu TMember neprideľuje žiadnu pamäť pre polia Name, eMail a Posts;

Ak chcete skutočne vytvoriť inštanciu záznamu TMember, musíme deklarovať premennú typu TMember, ako v nasledujúcom kóde:

Teraz, keď máme záznam, použijeme bodku na izoláciu polí DelphiGuide.

Poznámka: vyššie uvedený kód sa mohol prepísať pomocou skľúčových slov.

Teraz môžeme skopírovať hodnoty polí DelphiGuide do AMBER.

Zaznamenajte rozsah a viditeľnosť

Typ záznamu deklarovaný v rámci deklarácie formulára (implementačná časť), funkcie alebo postupu má rozsah obmedzený na blok, v ktorom je deklarovaný. Ak je záznam deklarovaný v časti rozhrania jednotky, má rozsah, ktorý obsahuje akékoľvek ďalšie jednotky alebo programy, ktoré používajú jednotku, kde sa vyhlásenie vyskytuje.

Súbor záznamov

Pretože TMember funguje ako akýkoľvek iný typ Object Pascal, môžeme deklarovať celý rad premenných záznamu:

Poznámka: Tu je návod deklarovať a inicializovať konštantné pole záznamov v Delphi.

Záznamy ako záznamové polia

Pretože typ záznamu je legitímny ako akýkoľvek iný typ Delphi, pole záznamu môže byť samotným záznamom. Napríklad by sme mohli vytvoriť ExpandedMember na sledovanie toho, čo člen posiela spolu s informáciami o členovi.

Vyplnenie všetkých informácií potrebných pre jeden záznam je teraz trochu ťažšie. Na prístup do polí TExpandedMember je potrebných viac období (bodiek).

Zaznamenajte pomocou polí „Neznáme“

Typ záznamu môže mať variantnú časť (nesmie sa zamieňať s premennou typu Variant). Záznamy variantov sa používajú napríklad vtedy, keď chceme vytvoriť typ záznamu, ktorý má polia rôzne druhy údajov, ale vieme, že nikdy nebudeme musieť používať všetky polia v jednom zázname inštancie. Ak sa chcete dozvedieť viac o častiach variantov v záznamoch, pozrite si súbory pomocníka spoločnosti Delphi. Použitie alternatívneho typu záznamu nie je bezpečné pre daný typ a nie je odporúčanou praxou programovania, najmä pre začiatočníkov.

Záznamy variantov však môžu byť veľmi užitočné, ak sa niekedy ocitnete v situácii, keď ich budete používať.

instagram story viewer