Врсте жица у Делфима

Као и у било којем програмском језику, у Делпхи, променљиве су резерви места која се користе за чување вредности; имају имена и типове података. Тип података променљиве одређује како се битови који представљају те вредности чувају у меморији рачунара.

Када имамо променљиву која ће садржати низ знакова, можемо је прогласити типомНиз.
Делпхи нуди здрав асортиман стринг-оператера, функција и процедура. Пре додељивања врсте података стрингу променљивој, морамо темељно да разумемо Делфове четири врсте стрингова.

Кратки низ

Једноставно речено, Кратки низ је бројен низ (АНСИИ) знакова, са до 255 знакова у низу. Први бајт овог поља чува дужину низа. Будући да је ово главни тип низа у Делпхи 1 (16-битни Делпхи), једини разлог за употребу кратког низа је за компатибилност уназад.
За креирање променљиве типа СхортСтринг користимо:

вар с: СхортСтринг; с: = 'Делпхи програмирање'; // С_Ленгтх: = Наручи (с [0])); // што је исто што и дужина


Тхе с променљива је променљива кратка низа која може да садржи до 256 знакова, меморија јој је статички додељена 256 бајтова. Пошто је ово обично расипничко - мало је вероватно да ће се ваш кратки низ проширити на максималну дужину - секунду Приступ кориштењу Схорт Стрингс користи подтипове СхортСтринг чија је максимална дужина од 0 до 255.

instagram viewer

вар ссмалл: стринг [50]; ссмалл: = 'Кратки низ, до 50 знакова';

Ово ствара променљиву звану ссмалл чија је максимална дужина 50 карактера.

Напомена: Када доделимо вредност варијабли Схорт Стринг, стринг је скраћен ако прелази максималну дужину за тип. Кад прођемо кратке жице до неке Делфијеве стрингове која манипулише рутином, они се претварају у дуг и низ из дугог низа.

Гудачки / Дуги / Анси

Делпхи 2 је доведен до Објецт Пасцал-а Лонг Стринг тип. Дуги низ (у Делфовој помоћи АнсиСтринг) представља динамички додељени низ чија је максимална дужина ограничена само доступном меморијом. Све 32-битне верзије Делпхија подразумевано користе дуге жице. Препоручујем употребу дугих жица кад год можете.

вар с: Стринг; с: = 'стринг може бити било које величине ...';

Тхе с варијабла може садржати од нуле до било којег практичног броја знакова. Низ расте или се смањује када му додељујете нове податке.

Можемо користити било коју варијаблу низа као низ знакова, други знак у с има индекс 2. Следећи код

с [2]: = 'Т';

додјељује Т на други знак ос с променљива. Сада је неколицина првих ликова у с изгледати: ТТе с стр ....
Немојте бити заведени, не можете да користите с [0] да бисте видели дужину низа, с није СхортСтринг.

Бројање референци, копирање на писање

Пошто доделу меморије врши Делпхи, не морамо да бринемо о сакупљању смећа. При раду с дугим (Анси) низовима Делпхи користи бројање референци. Овако је копирање стрингова заправо брже за дуге жице него за кратке жице.
Бројање референца, на пример:

вар с1, с2: Гудачки; с1: = 'први низ'; с2: = с1;

Када креирамо низ с1 променљиве и доделите јој неку вредност, Делпхи додељује довољно меморије за низ. Када копирамо с1 до с2, Делпхи не копира вредност низа у меморију, само повећава број референци и мења вредност с2 да укаже на исту меморијску локацију као с1.

Да би минимизирао копирање када преносимо жице у рутине, Делпхи користи технику копирања-писања. Претпоставимо да променимо вредност с2 стринг променљива; Делпхи копира први низ на нову меморијску локацију, јер промена треба да утиче само на с2, а не на с1, и обојица показују на исту меморијску локацију.

Широки низ

Широки низови се такође динамички распоређују и управљају, али не користе референтно бројање или семантику копирања при писању. Широки низови састоје се од 16-битних Уницоде знакова.

О скуповима знакова Уницоде

АНСИ скуп знакова који користи Виндовс је једнобајтни скуп знакова. Уницоде чува сваки знак у скупу знакова у 2 бајта уместо 1. Неки национални језици користе идеографске знакове за које је потребно више од 256 знакова које подржава АНСИ. Са 16-битном нотацијом можемо представити 65.536 различитих знакова. Индексирање вишебајтних низова није поуздано, пошто с [и] представља и бајт (не нужно и-ти знак) у с.

Ако морате да користите знакове Виде, требали бисте прогласити варијаблу низа типа ВидеСтринг и променљиву врсту типа ВидеЦхар. Ако желите да испитате један широк низ појединачних знакова, обавезно тестирајте вишебитне знакове. Делпхи не подржава аутоматске претворбе типа бетввен Анси и Широке врсте стрингова.

вар с: ВидеСтринг; ц: ВидеЦхар; с: = 'Водич за Делпхи_'; с [8]: = 'Т'; //s='Delphi_TGuide';

Ништа укида

Нултом или нултом завршеном низу је низ знакова, индексиран целим бројем који почиње од нуле. Пошто низ нема индикатор дужине, Делпхи користи АСЦИИ 0 (НУЛЛ; # 0) знак за означавање границе низа.
То значи да у суштини нема разлике између нулл-терминираног низа и низа [0..НумберОфЦхарс] типа Цхар, где је крај низа означен са # 0.

При позивању функција Виндовс АПИ користимо низове са низом термина у Делпхију. Објект Пасцал омогућава нам да избегнемо заблуду са показивачима на нулте базиране низове приликом руковања низом са крајњим низовима користећи ПЦхар тип. Замислите ПЦхар као показивач на нулл-терминирани низ или на низ који га представља. За више информација о показивачима, проверите:Показивачи у Делфима.

На пример, Тхе ГетДривеТипе АПИ функција одређује да ли је диск диск преносиви, фиксни, ЦД-РОМ, РАМ диск или мрежни диск. Следећи поступак наводи све погоне и њихове типове на корисничком рачунару. Поставите једно дугме и једну компоненту меморије на образац и доделите ОнЦлицк руковаоцу дугмета:

процедура ТФорм1.Буттон1Цлицк (Пошиљалац: ТОбјецт); вар
Погон: Цхар; ДривеЛеттер: стринг [4]; започетиза Погон: = 'А' до 'З' урадитизапочети
ДривеЛеттер: = Дриве + ': \'; случај ГетДривеТипе (ПЦхар (Дриве + ': \')) од
ДРИВЕ_РЕМОВАБЛЕ: Мемо1.Линес. Додај (ДривеЛеттер + 'Флоппи диск'); ДРИВЕ_ФИКСЕД: Мемо1.Линес. Додај (ДривеЛеттер + 'Фиксни погон'); ДРИВЕ_РЕМОТЕ: Мемо1.Линес. Додај (ДривеЛеттер + 'Мрежни диск'); ДРИВЕ_ЦДРОМ: Мемо1.Линес. Додај (ДривеЛеттер + 'ЦД-РОМ уређај "); ДРИВЕ_РАМДИСК: Мемо1.Линес. Додај (ДривеЛеттер + 'РАМ диск'); крај; крај; крај;

Мешајући Делпхијеве жице

Слободно можемо мешати све четири различите врсте гудача, Делпхи ће дати најбоље да схвати шта покушавамо да радимо. Задатак с: = п, где је с варијабла низа и п је ПЦхар израз, копира нулл-терминирани низ у дуги низ.

Типови знакова

Поред четири врсте стрингова података, Делпхи има три типа знакова: Цхар, АнсиЦхар, иВидеЦхар. Низна константа дужине 1, као што је „Т“, може означавати знаковну вредност. Тип генеричког знака је Цхар, што је еквивалентно АнсиЦхар-у. Вриједности ВидеЦхар су 16-битни знакови поредани према скупу знакова Уницоде. Првих 256 знакова Уницоде одговарају АНСИ знаковима.

instagram story viewer