Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Зертханалық жұмыс №10






Тақ ырыбы: Жолдар

Мақ саты Delphi ортасының жұ мысына жалпы сипаттама

Қ олданылатын материалдар мен қ ұ рал- жабдық тар:

Компьютер, Delphi программалау ортасы

 

Теориялық тү сініктеме:

Object Pascal тілінде мә тіндерді ө ң деу ү шін тө мендегідей типтері пайдаланылады:

- ShortString шағ ын жол немесе String [N], мұ ндағ ы N< =225

- String ұ зын жол;

- WideString кең жол;

- Pchar нө лдік терминалдық жол.

Бұ л типтердің бә ріне ортақ ә рбір жол символдардан қ ұ ралғ ан бір ө лшемді массив ретінде сипатталуында, ал жұ мыс істейтін программада символдар мө лшері ө згеріп отырады: String[N] ү шін жолдың ұ зындығ ы 0- ден N-ге дейін, ал String жә не Pchar ү шін 0-ден 2 Гбайтқ а дейін ө згереді.

Ең ү лкен ұ зындық ты шағ ын хабарлау ShortString стандартты типі арқ ылы жү зеге асадды. Windows-де нө лдік терминалдық жол жиі пайдаланылады, ол #0 символымен шектелген символдар тізбегін береді. Мұ ндай жолдардың ең ү лкен ұ зындығ ы жадының ү лкендігіме шектеледі. OLE технологиясына негізделетін компоненттермен ү йлесімділік ү шін Delphi 32- де WideString стандарты типімен хабарланатын кең жолдар енгізілген. Олар ө здерінің қ асиеттері бойынша String жолымен бірдей, бірақ ә рбір символды беру ү шін 2 байт пайдаланылады.

STS ұ зын жолын хабарлағ андағ ы жадының жұ мыс механизмі тө мендегідей болады: компилятор жады ұ яшығ ының нө мірін орналастыруғ а жеткілікті болатын айнымалы ү шін 4 бай орын бө леді. Бө лінген орынғ а символдық жол орналасады. Мұ ны STS айнымылысы жолғ а сілтеме жасады дейді. Мұ ндай ө ң деушінің бірінші операторы орындалғ анда программа «символдар жолы» символдар тізбегінің ұ зындығ ын анық тап, операциялық жү йеден 15+5=20 байт орын бө луді талап етеді. STS айнымалысына бірінші бө лінген байттың нө мірін орналастырады.

Procedure TfmExample.bbRunClick (Sender: tObject);

Var

STS, STSS: String;

begin

STS: = ‘Символдар жолы’;

STS: =’Бұ л’+STS;

STS[7]: +’’; //Жолдағ ы символдар 1-ден бастап нө мірленеді.

LBOutput.Caption: =STS; // «Бұ л символдар жолы» деген жол шығ ады.

End;

Сондай-ақ, осы бө ліктен бастап символдар тізбегін орналастырады да, терминалдық нольмен жә не 4 байттық есептегішке сілтемемен аяқ тайды. Программаны жү ргізу кезең індегі мұ ндай орналастыру динамикалық деп аталды, сонымен бірге компилиция кезең індегі орналастыру статикалық деп аталады. Жадымен жұ мыс істеу кезінде сілтеме есептегіш маң ызды роль атқ арады:

STSS: =STS;

Оператор орындалғ анда STSS айнымалысының мә нін орналастыруғ а жадыдан орын бө лінбейді, STSS айнымалысы STS айнымалысының мә ні меншіктейді, оғ ан байланысты жадының сілтеме есептегіші 1-ге артады. Сө йтіп, екі кө рсеткіш те жадының бір бө лігіне сілтеме жасайды, оның сілтеме есептегішінің мә ні 2-ге тең болады.

STS: =’бұ л’+STS;

операторы орындалғ анда сілтеме есептегіші 1-ге кемиді, жадыдан жаң а ұ яшық бө лінеді, ұ зындығ ы 20+6=26 байт. Жадының бұ л ұ яшығ ының кө рсеткіші STS айнымаласына барып орналасады да, жадының ө зіне «Бұ л символдар жолы» деген символдар тізбегі, сілтеме есептегішінің бірілгінен тұ ратын терминалдық ноль орналасады. Сө йтіп, STSS жә не STS айнымалылары жадының ә ртү рлі бө ліктеріне сілтеме жасайды. String жолын орналастыруғ а бө лінген жадының бө лігі-егер сілтеме есептегіші 0-ге тең болса босатылады.

Char типті айнымалыны хабарлағ анда да жадымен орындалатын жұ мыс осығ ан ұ қ сас жү зеге асырылады.

32 разядты Windows-дің нұ сқ алары символдардың ү ш тү рін пайдаланады: бір байтты ANSI символы, екі байтты символ жә не Unicode символы. Unicode симвлы жадыдан 65536 мү мкін болатын мә ндерден қ ұ ралатын бір сө здік орын алады. Екі байттық символдар мен Unicode символдары WideString типті жолдардан қ ұ ралғ ан-WideChar стандартты типімен хабарланады. OLE технологиясын пайдалантын Windows –дің барлық программалары Unicode символдарына сә йкес кодталуы тиіс.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал