
- •Программирование Алгоритмов с использованием строк на языке lazarus
- •Строковые типы
- •Строковые выражения
- •Стандартные подпрограммы для строк
- •Размещение компонентов на Форме
- •Создание процедур обработки событий
- •Текст модуля unstr
- •Interface
- •Implementation
- •Initialization
- •Программирование алгоритмов с использованием строк на языке lazarus
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Саратовский государственный технический университет
Балаковский институт техники, технологии и управления
Программирование Алгоритмов с использованием строк на языке lazarus
Методические указания к выполнению лабораторной работы
по курсу «Системное программное обеспечение»
для студентов специальности 210100
всех форм обучения
Одобрено
редакционно-издательским советом
Балаковского института техники,
технологии и управления
Балаково 2009
Цель работы: освоить применение компонентов ListBox и СomboBox и создать приложение, в котором используются строки.
Основные понятия
Строковые типы
Строка представляет собой последовательность символов, заключенную в одинарные или двойные кавычки.
Константа типа Char представляет собой строку размером в 1 символ.
Примеры строк:
'Привет!', "Тест", "A"
Типы строк, которые есть в Object Pascal, приведены в таблице 1.
Таблица 1
Типы строк
Тип строки |
Максимальная длина |
Есть ли нулевой символ в конце |
ShortString |
255 байт |
нет |
AnsiString |
2 Гб |
есть |
String |
255 байт/2 Гб |
нет/есть |
WideString |
2 Гб |
есть |
Значение типа ShortString – это так называемые короткие строки, длина которых не превышает 255 символов. Каждый символ занимает один байт. Переменная этого типа имеет фиксированный размер 256 байтов. Самый первый байт содержит число, указывающее длину строки (в виде символа). Каждый байт имеет свой порядковый номер. Первый байт, содержащий длину строки, имеет номер, равный 0. Для того, чтобы получить длину строки по нулевому байту необходимо вызвать процедуру – ord(). К каждому символу короткой строки можно обратиться по индексу, например:
Stroka[8] – возвращает 8-й символ.
Stroka[53] – возвращает 53 символ.
ord(Stroka[0]) – возвращает количество символов в строке.
Короткая строка размещается компилятором в памяти компьютера до начала выполнения программы, т.е. статически.
Тип AnsiString предназначен для создания переменных для хранения текстов произвольной длины (длинных строк). Тексты состоят из символов в кодировке ANSI (на один символ отводится один байт). Переменная этого типа занимает в памяти 4 байта и является указателем, т.е. содержит адрес той ячейки памяти, начиная с которой будет фактически располагаться символьная строка. Выделение места в памяти происходит на этапе выполнения программы, т.е. динамически. Программа сама определяет необходимую длину строки по заданному количеству символов, и операционная система выделяет нужный участок памяти. В конце строки размещается терминальный (завершающий) нуль – символ #0.
Если строка пустая, т. е. ее длина равна 0, то указатель равен nil и для хранения строки никакой памяти не используется. Две переменные, имеющие одинаковые значения, ссылаются на одну область памяти (их указатели равны).
Тип WideString также представляет собой динамически размещаемые в памяти компьютера строки, длина которых ограничена только объемом свободной памяти компьютера. Однако, в отличие от строки типа AnsiString, каждый символ является Unicode-символом, т.е. кодируется 2 байтами. Поэтому в строке типа WideString по сравнению со строкой типа AnsiString, имеющей такую же длину, количество символов вдвое меньше.
Тип String по умолчанию воспринимается компилятором как AnsiString. Если указать директиву {$H-}, тогда String воспринимается как ShortString. По умолчанию, действует директива {$H+} – AnsiString.
Если в разделе type указано, например, String[10], то независимо от директив компилятора тип трактуется как ShortString с указанным числом символов.
Несмотря на разницу во внутреннем представлении, короткие строки и длинные строки имеют для программиста одинаковые свойства.