Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.docx
Скачиваний:
2
Добавлен:
23.04.2019
Размер:
210.36 Кб
Скачать

Val(st: string; X: числовая переменная; var code: integer)

Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.

Длинные строки Delphi.

Выделение памяти под эти строки происходит динамически, а их размер практически неограничен. Длинная строка описывается 32- разрядным указателем (переменной строки). Delphi автоматически выделяет память для такой строки, а также добавляет в конец строки нулевой символ (для совместимости с WIN API). Поскольку переменная длинной строки представляет собой указатель, то несколько переменных могут ссылаться на одно и то же значение без использования дополнительной памяти. Каждая строка AnsiString имеет счетчик ссылок (reference count), в котором содержится количество строковых переменных, ссылающихся на один и тот же адрес. Если переменная типа AnsiString модифицирует строку, то счетчик ссылок декрементируется. Когда счетчик ссылок становится равным нулю, блок памяти, занимаемый строкой, освобождается, а указатель строки принимает нулевое значение.

Следует сказать, что длинные строки Delphi также имеют завершающий ноль, что делает их совместимыми со строками с завершающим нулем. Длинные строки можно преобразовать к строкам с завершающим нулем, приведя их к типу PChar.

Тип данных AnsiString используется, чтобы содержать последовательность символов, подобно предложениям. Каждый символ AnsiChar, гарантируется, что будет в размере 8 бит. AnsiString может содержать любое число символов, ограниченное только памятью.

В отличие от ShortString, AnsiString - указатель, ссылающийся на переменные. Память распределяется для AnsiString только когда необходимо. Например, присваивание значения одного AnsiString другому не распределяет память для копии первой строки. Вместо этого, ссылка считает первую строку увеличенной, и второй AnsiString устанавливает указатель на него.

Но когда вторая строка изменяется, то для этой новой строки выделяется новая память, и ссылка считает первую строку уменьшенной. Когда на строку больше не ссылаются (последний указатель AnsiString установлен на ноль), она уничтожается.

AnsiString может быть присвоен от других строк, от функций, которые возвращают строку, и конкатенациями как в данном примере.

Функции и процедуры для работы с длинными строками (завершающихся нулем)

AnsiStrComp Сравнивает две длинные строки с учетом регистра и языковых особенностей Windows.

AnsiStrIComp Сравнивает две длинные строки без учета регистра, но учитывая языковые особенности Windows.

AnsiStrLower Преобразовывает все символы длинной строки в строчные (нижний регистр).

AnsiStrRScan Возвращает указатель на последнее местоположение указанного символа в длинной строке.

AnsiStrScan Возвращает указатель на первое местоположение указанного символа в длинной строке.

AnsiStrUpper Преобразовывает все символы длинной строки в прописные (верхний регистр).

LineStart Возвращает указатель на символ окончания предыдущей строки.

StrAlloc Выделяет память под длинную строку и возвращает указатель на местоположение первого символа новой строки.

StrBufSize Определяет какое максимальное число символов может содержать указанная длинная строка.

StrCat Копирует длинную строку в конец указанной длинной строки.

StrComp Сравнивает две длинные строки с учетом регистра.

StrCopy Копирует символы одной длинной строки в другую.

StrECopy Копирует одну длинную строку в другую и возвращает указатель на нулевой символ конца строки.

StrEnd Возвращает указатель на символ окончания длинной строки.

StrIComp Сравнивает две длинные строки без учета регистра.

StrLCat Копирует такое количество символов одной длинной строки в конец другой длинной строки, чтобы в итоге получилась строка заданной длины.

StrLComp Сравнивает заданное количество первых символов двух длинных строк с учетом регистра.

StrLCopy Копирует заданное количество символов одной длинной строки в другую длинную строку.

StrLen Возвращает количество символов длинной строки, без учета символа конца строки.

StrLower Преобразовывает все символы длинной строки в строчные (нижний регистр).

StrMove Копирует заданное количество символов одной длинной строки в другую длинную строку.

StrPCopy Копирует Паскаль-строку в длинную строку.

StrPLCopy Копирует заданное количество символов из Паскаль-строки в длинную строку.

StrRScan Возвращает указатель на последнее местоположение заданного символа в длинной строке.

StrScan Возвращает указатель на первое местоположение заданного символа в длинной строке.

StrUpper Преобразовывает все символы длинной строки в прописные (верхний регистр).