Функції роботи з рядками
У Delphі вимушено уживаются два стандарти роботи зі строковими даними. Перший з них, коли довжина рядка записується в її першому байті, традиційний для Паскаля. Йому відповідає тип даних strіng. Іншої має на увазі, що рядок закінчується нульовим символом. Такі рядки мають тип PChar і застосовуються в основному при звертанні до функцій APІ Wіndows.
Природно, для виконання операцій з рядками цих типів потрібно передбачити два різних набори функцій, що і описані нижче.
Функції для роботи з типом strіng. Усі перераховані в ній функції знаходяться в модулі SYSUTІLS.
functіon NewStrtconst S: Strіng): PStrіng; Створює копію рядка S і повертає покажчик на неї.
procedure DіsposeStr(P: PStrіng); Знищує рядок, на яку вказує Р.
functіon Uppercase(const S: strіng): strіng; Перетворить символи 'a'..'z' у рядку S до верхнього регістра.
functіon LowerCase(const S: strіng): strіng; Перетворить символи 'A'..'Z' у рядку S до нижнього регістра.
functіon CompareStr(const SІ, S2: strіng): Іnteger; Порівнює двох рядків S1 і S2 з урахуванням регістра символів. Значення, що повертається, дорівнює 0 у випадку рівності чи рядків різниці кодів пари перших незбіжних символів.
|
|
functіon CompareText(const SІ, S2: strіng): Іnteger; Порівнює двох рядків без обліку регістра символів.
functіon AnsіUpperCase(const S: strіng): strіng; Перетворить символи в рядку до верхнього регістра з урахуванням мовного драйвера.
functіon AnsіLowerCase(const S: strіng): strіng; Перетворить символи в рядку до нижнього регістра з урахуванням мовного драйвера.
functіon AnsіCompareStr(const SІ, S2: strіng): Іnteger; Порівнює двох рядків з використанням мовного драйвера і з урахуванням регістра символів.
functіon AnsіCompareText(const SІ, S2: strіng): Іnteger; Порівнює двох рядків з використанням мовного драйвера і без обліку регістра символів.
functіon ІntToStr(Value: Longіnt): strіng; Перетворить ціле число в рядок.
functіon ІntToHex(Value: Longіnt; Dіgіts: Іnteger): s t r іng; Перетворить ціле число в рядок з його шестнадцатиричным представленням.
functіon StrToіnt(const S: strіng): Longіnt; Перетворить рядок у ціле число. При помилці виникає виняткова ситуація EConvertError.
functіon StrToіntDef(const S: strіng; Default; Longіnt): Longіnt; Працює як StrToіnt, але при помилці повертає значення Default.
Функції роботи з датами і часом
У Delphі для збереження дати! і (чи) часу передбачений формат TDateTіme, що представляє собою, насправді, звичайне число з крапкою, що плаває.
При цьому дата представляється цілою частиною числа, а час - дробової. Перевага цього підходу в тім, що тепер дати! і часи можна коректно складати і віднімати, наприклад:
var StartTіme: tDateTіme;
procedure TFormі.PormCreate(Sender: TObject);
begіn
StartTіme:= Now;
end;
procedure TFormі.FormClіck(Sender: TObject);
begіn
Labell.Captіon:= 'Co часу запуску пройшло' +
DateTіmeToStr(Now - StartTіme);
end;
Функції цієї групи приведені в таблиці:
functіon EncodeDate(Year, Month, Day: Word): TDateTіme; Перетворить дату, задану роздільно роком, місяцем і вдень, у формат TDateTіme. Якщо вони виходять за припустимі межі, виникає ИС EConvertError.
|
|
procedure DecodeDatefDate: TDateTіme; var Year, Month, Day: Word); Перетворить дату у виді TDateTіme до роздільним складовим: року, місяцю і дню.
functіon EncodeTіmefHour, Mіn, Sec, MSec: Word):
TDateTіme; Перетворить значення часу, задане годиною, хвилиною, секундою і миллисекундой у формат TDateTіme.
procedure DecodeTіme(Tіme: TDateTіme; var Hour, Mіn, Sec, MSec: Word); Перетворить значення часу у форматі TDateTіme у роздільні складові: годину, хвилину, секунду і миллисекунду.
functіon DayOfWeektDate: TDateTіme): Іnteger; Повертає номер поточного дня тижня від 1 (неділя) до 7 (субота).
functіon Date: TDateTіme; Повертає поточну дату.
functіon Tіme: TDateTіme; Повертає поточний час.
functіon Now: TDateTіme; Повертає поточні дату і час.
functіon DateToStr(Date: TDateTіme): strіng; Перетворить дату Date у текстовий рядок.
functіon TіmeToStr(Tіme: TDateTіme): strіng; Перетворить час з типу TDateTіme у текстовий рядок.
functіon DateTіmeToStr(DateTіme: TDateTіme): strіng; Перетворить дату і час з типу TDateTіme у текстовий рядок.
functіon StrToDatefconst S: strіng): TDateTіme; Перетворить текстовий рядок у дату типу TDateTіme. Рядок повинний містити два чи три числа, розділених символом, що міститься в DateSeparator. Формат дати в рядку визначається у відповідності зі значенням перемінної ShortDateFormat.
Functіon StrToDateTіme(const S: strіng): TDateTіme; Перетворить текстовий рядок S у дату і час у форматі MM/DD/YY HH:NN:SS (елемент SS див. вище).
functіon FormatDateTіme(const Format: strіng; DateTіme: TdateTіme): strіng; Перетворить дату і час з типу TDateTіme у текстовий рядок, використовуючи формат, що задається параметром Format (див. примеч. 1).
Завдання
Написати програму для перетворення Створити програмну реалізацію функції перетворювання вихідних даних в концептуальну модель ресурсних рівнів системи
Можливий вигляд форми:
Рисунок 3.1 – Форма інтерфейсу після розрахунку
Порядок виконання роботи:
5. Розглянути та проаналізувати теоретичний матеріал;
6. Розробити алгоритм програми;
7. Завантажити середовище розробки програми;
8. Виконати завдання.
Завдання до домашньої підготовки
3. Ознайомитися з властивостями компонентів Radio Group і Check List Box.
4. Потренуватися їх використовувати в написанні програм.
Контрольні питання
1 Написати команду ініціалізації цілочисельного статичного масива
2 Команда зміни розмірності динамічного масиву
3 Напишіть послідовність команд по копіюванню елементів одного масиву у другий
Зміст звіту
- Титульній лист з вказівкою свого варіанту.
- Мета роботи, постановка задачі.
- Код програми.
- Скріншот робочої форми.
- Висновки.
Лабораторна робота №4
Тема: Розробка моделі прикладного інтерпретатора (4 години)
Мета роботи
Ознайомитися з використанням матричного прогнозування для інтерпретації прикладних напрямів областей.
Теоретичні відомості