функція length

Як стати програмістом 2.0
Ця книга для тих, хто хоче стати програмістом. Насправді хоче, а не просто мріє. І хоче саме стати програмістом з великої літери, а не просто навчитися кулебякать якісь примітивні програмки ... Детальніше.
Функція Length в Паскалі визначає довжину рядка. синтаксис:
function Length (S. AStringType). Integer;
Другий варіант для динамічних масивів:
function Length (A. DynArrayType): Integer;
Функція повертає довжину рядка S, яка обмежена значенням 255 для коротких рядків (в класичному Паскалі - це максимальна довжина рядка). Якщо S - це порожній рядок, то функція повертає 0.
Функція Length може обчислювати довжину рядка для типів AnsiString і WideString.
Для динамічних масивів функція повертає кількість елементів в масиві.
Функція визначення довжини рядка Length також підтримує параметри типу PChar і PWideChar. В цьому випадку вона працює також, як функції StrLen і WStrLen відповідно. У цьому випадку функція обчислює довжину рядка з нульовим закінченням (з завершальним нулем), а час її виконання пропорційно довжині рядка, тому що завершальний нульовий символ шукається шляхом послідовного перебору всіх символів рядка.
Як визначити довжину рядка в Паскалі
Думаю, вже зрозуміло, що зробити це можна за допомогою функції Length. Наприклад, так:
Однак є й інший спосіб, про який мало хто знає. Правда, цей спосіб можна використовувати тільки з типом ShortString. Але в більшості випадків цього строкового типу цілком достатньо.
Цей спосіб дозволяє трохи заощадити процесорний час, так як для його використання не потрібно витрачати цей час на виклик функції.
А суть його проста. Справа в тому, що в типі ShortString довжина рядка зберігається в нульовому елементі рядка. Як відомо, в Паскалі відлік символів в рядку починається з одиниці. Однак в типі ShortString є і нульовий елемент, в якому і зберігається довжина рядка:
Проблема тільки в тому, що ця довжина рядка зберігається як ASCII-код символу, і отримати цей елемент можна тільки як символ. Але це не біда, тому що ми вже вміє перетворювати символ в його код за допомогою функції Ord.
Приклад програми см. В кінці статті.
Як задати довжину рядка в Паскалі
У деяких випадках для економії пам'яті можна задати фіксовану довжину рядка.
Робити це можна, коли ви точно впевнені, що для ваших потреб у вашій програмі буде потрібно, наприклад, рядок, в якій буде не більше якогось певного кількості символів.
Задати довжину рядка в Паскалі можна так:
Потім з цими змінними можна працювати як зі звичайними рядками. Тільки слід пам'ятати, що при спробі помістити, наприклад, в s04 рядок довжиною більше 4 символів, до цього рядка будуть поміщені тільки перші чотири символи, а інші будуть відкинуті.
Нижче наведено приклад програми, де розглянуті всі вищеописані випадки: