Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні роботи_ООП.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7.3 Mб
Скачать

Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]

Короткі рядки мають фіксовану кількість символів. Рядок ShortString| може містити|утримувати| 255 символів. Рядок String|[N] може містити|утримувати| N символів, але|та| не більше 255. Перший байт цих змінних містить|утримує| довжину рядка.

Довгий рядок типу|типа| String|

При роботі з|із| цим типом даних пам'ять виділяється в міру необхідності (динамічно) і може займати|позичати| всю доступну програмі пам'ять. Спочатку компілятор виділяє для змінної 4 байти, в яких розміщується номер елементу пам'яті, починаючи|розпочинати| з|із| якої розташовуватиметься символьний рядок. На етапі виконання програма визначає необхідну довжину ланцюжка символів і звертається|обертається| до ядра операційної системи з|із| вимогою виділити необхідну пам'ять.

Процедури і функції для роботи з|із| короткими і довгими рядками.

Для роботи з|із| рядками застосовуються наступні|такі| процедури і функції (у квадратних| дужках указуються|вказують| необов'язкові параметри).

Процедури і функції для роботи з рядками

Function Concat(S1 [, S2 ..., SN]: String): String;

Повертає рядок, що є зчепленням рядків-параметрів S1, S2, .., SN

Function Copy(St: String; Index, Count: Integer): String;

Копіює з рядка St Count символів, починаючи з символу з номером Index

Procedure Delete(St: String; Index, Count: Integers;

Видаляє Count символів з рядка St починаючи з символу з номером Index

Procedure Insert(SubSt: String; St, Index: Integer);

Вставляє підрядок SubSt в рядок St починаючи з символу з номером Index

Function Length(St: String): Integer;

Повертає поточну довжину рядка St

Function Pos(SubSt, St: String): Integer;

Відшукує в рядку St перше входження підрядка SubSt і повертає номер позиції, з якою вона починається. Якщо підрядок не знайдений, повертається нуль

Procedure SetLength(St: String; NewLength: Integer);

Встановлює нову (меншу) довжину NewLength рядка St, якщо NewLength більше поточної довжини рядка, звернення до SetLength ігнорується

Підпрограми перетворення рядків в інші типи т

Function StrToCurr(St: String): Currency;

Перетворить символи рядка St в ціле число типу Currency. Рядок не повинен містити провідних або ведених пропусків

Function StrToDate(St: String): TDateTime;

Перетворить символи рядка St в дату. Рядок повинен містити два або три числа, розділених правильним для Windows роздільником дати (у русифікованій версії таким роздільником є «.») Перше число - день, друге – місяць, якщо вказано третє число, воно задає рік

Function StrToDateTime(St: String): TDateTime;

Перетворить символи рядка St в дату і час. Рядок повинен містити дату і час, розділені пропуском

Function StrToFloat(St: String): Extended;

Перетворить символи рядка St в дійсне число. Рядок не повинен містити провідних або ведених пропусків

Function StrToInt(St: String): Integer;

Перетворить символи рядка St в ціле число. Рядок не повинен містити провідних або ведених пропусків

Function StrToIntDef(St: String; Default: Integer): Integer;

Перетворить символи рядка St в ціле число. Якщо рядок не містить правильного представлення цілого числа, повертається значення Default

Function StrToIntRange(St: String; Min, Max: Longint): Longint;

Перетворить символи рядка St в ціле число і порушує виключення ERangeError, якщо число виходить із заданого діапазону Mm Max

Function StrToTime(St: String): TDateTime;

Перетворить символи рядка St в час

Procedure Val(St: String; var X; Code: Integer);

Перетворить рядок символів St у внутрішнє представлення цілої або речової змінної X, яке визначається типом цієї змінної. Параметр Code містить нуль, якщо перетворення пройшло успішно, і тоді в Х поміщається результат перетворення; інакше він містить номер позиції в рядку St, де виявлений помилковий символ, і в цьому випадку вміст X не міняється. У рядку St можуть бути провідні і (або) ведені пропуски

Підпрограми зворотного перетворення

Function DateToStr(Value: TDateTime): String;

Перетворить дату з параметра Value в рядок символів

Function DateTimeToStr(Value: TDateTime): String;

Перетворить дату і час з параметра Value в рядок символів

Procedure DateTimeToString (var St: String; Format: String; Value: TDataTime) ;

Перетворить дату і час з параметра Value в рядок St

Function FormatDateTime (Format: String; Value: TDateTime): String;

Перетворить дату і час з параметра Value в рядок символів

Function FloatToStr( Value: Extended): String;

Перетворить речове значення Value в рядок символів

Function FloatToStrF(Value: Extended; Format: TFloatFor-mat; Precision, Digits: Integer): String;

Перетворить речове значення Value в рядок символів з урахуванням параметрів Precision і Digits (див. пояснення нижчий)

Function FormatFloat(Format: String; Value: Extended): String;

Перетворить речове значення Value в рядок

Function IntToStr(Value: Integer): String;

Перетворить ціле значення Value в рядок символів

Function TimeToStr(Value: TDateTime): String;

Перетворить час з параметра Value в рядок символів

Procedure Str(X [:width [:Decimals]]; var St: String);

Перетворить число Х будь-якого речового або цілого типу в рядок символів St; параметри Width і Decimals, якщо вони присутні, задають формат перетворення: Width визначає загальну ширину поля, виділеного під відповідне символьне представлення дійсного або цілого числа X, а Decimals –количество символів в дробовій частині (цей параметр має сенс тільки у тому випадку, коли Х - дійсне число)

Правила використання параметрів функції FloatToStrF| показані нижче:

Значення Format

Опис

fFfExponent

Наукова форма уявлення з множником еХХ («помножити на 10 в ступені XX»). Precision задає загальну кількість десяткових цифр мантиси. Digits - кількість цифр в десятковому порядку XX. Число округляється з урахуванням першої відкиданої цифри: 3.1416Е+00

ffFixed

Формат з фіксованим положенням роздільника цілої і дробової частин. Precision задає загальну кількість десяткових цифр в представленні числа. Digits - кількість цифр в дробовій частині. Число округляється з урахуванням першої відкиданої цифри: 3,14

ffGeneral

Універсальний формат, що використовує найбільш зручну для читання форму представлення дійсного числа. Відповідає формату ffFixed, якщо кількість цифр в цілій частині менше або рівне Precision, а само число - більше або рівне 0,00001, інакше відповідає формату ffExponent: 3,1416

ffNumber

Відрізняється від ffFixed використанням символу - роздільника тисяч при виведенні великих чисел (для русифікованої версії Windows таким роздільником є пропуск). Для Value = (* 1000 отримаємо 3 141,60

ffCurrency

Грошовий формат. Відповідає ffNumber, але в кінці рядка ставиться символ грошової одиниці (для русифікованої версії Windows - символи «р.»). Для Value = (*1000 отримаємо: 3 141,60р

Широкий рядок типу|типа| WideString|

Введена|запроваджувати| для забезпечення сумісності з|із| компонентами, заснованими на OLE-технології|. Від типу|типа| String| відрізняється тільки|лише| тим, що для представлення кожного символу використовується не один, а два байти.

Нуль-термінальний рядок типу|типа| PChar|

Є ланцюжком символів, обмеженим символом #0. Максимальна довжина рядка обмежена тільки доступній програмі пам'яттю. Нуль-термінальні рядка широко використовуються при зверненнях до API-функцій Windows (API – Application Program Interface – інтерфейс прикладних програм).

Представлення рядка у вигляді масиву символів

Рядок може бути описана як масив символів. Якщо масив має нульову межу|кордон|, він сумісний з типом PChar|.

Var| MASS| : array|[1.100] of| Char|;

На відміну від нуль-термінального| рядка тут довжина має фіксоване значення і не може мінятися в процесі виконання програми.

Компонент TListBox|

Компонентом TListBox| є список, елементи якого вибираються за допомогою клавіатури або миші. Список елементів задається властивістю Items|, методи Add|, Delete| і Insert| якого використовуються для додавання|добавляти|, видалення|віддалення| і вставки рядків. Об'єкт Items| (TString|) зберігає рядки, що знаходяться|перебувають| в списку. Для визначення номера виділеного елементу використовується властивість ItemIndex|.