|
Администрация |
Amadeus:1280040Nobilis:412791793 |
|
Объявления |
|
Объявляется набор модераторов на сайт. Все желающие стучите в ICQ#: 128-00-40 |
|
|
 |
|
|
Автор Nobilis
|
|
28.04.2007 г. |
В выражениях Delphi поддерживает три физических строковых формата: короткий (ShortString), длинный (LongString) и широкий (WideString). Их можно комбинировать в операторах присваивания и выражениях (все необходимые преобразования Delphi выполняет автоматически). Переменные типов AnsiString и WideString — это динамически распределяемые массивы символов, максимальная длина которых ограничивается только наличием памяти. Разница между ними состоит в том, что в AnsiString знаки записываются в формате char, а в WideString— в формате WideChar. Обычно вполне достаточно одного типа AnsiString, однако при работе с международными наборами символов, такими как UNICODE, удобнее использовать WideString. Тип ShortString—это, по существу, массив Array [0..255] of char. Первый его элемент задает динамическую длину строки, которая может принимать значения от 0 до 255 символов. Символы, составляющие строку, занимают места от 1 до 255. Тип ShortString предназначен, в основном, для обеспечения совместимости с ранними версиями Delphi и Borland Pascal. Логический строковый тип именуется просто String. Отнесение его к типу AnsiString или ShortString задается командой $Н. По умолчанию задается { $Н+}, и String совпадает с AnsiString. Если задать команду {$Н- }, то String будет совпадать с ShortString и иметь максимальную длину, равную 255 символам. Для совместимости с другими языками программирования в Delphi поддерживается класс строк с конечным нулем. Зарезервированных слов или идентификаторов для этого класса не существует. Строки с конечным нулем состоят из ненулевых символов и оканчиваются символом с порядковым номером 0 (#0). В отличие от типов AnsiString, ShortString и WideString, строки с нулевым окончанием не имеют указателя длины. Конец в этих стооках обозначается нулем. Физически строки с нуль-окончанием подобны массивам символов с нумерацией элементов от нуля, наподобие array [ 0 . . X] of char, где Х — некоторое положительное целое, большее нуля, хотя никаких объявлении подобного рода не происходит. Вместо этого определяется переменная-указатель PChar и распределяется необходимый объем памяти. При необходимости строке AnsiString можно присвоить тип PChar. Таким образом String или 255, или до ~2 гб символов Ansi или Unicode. Если включена (по умолчанию включена) директива {$H}, то string интерпретируется как AnsiString длинная с нулевым символом. Если {$H-}, то как ShortString - короткая без нулевого. В нулевом байте количество символов и соответственно длина не более 255. AnsiString является указателем на динамически выделяемую область памяти в которой хранится строка. Если в объявлении типа, после ключевого слова String указано число символов, например string[5], то независимо от директив тип трактуется как строка без нулевого с указанным числом сиволов. Со строками можно оперировать как с индексированными массивами символов. S[i] - символ расположенный в строке в позиции i Для строк типа ShortString или AnsiString выражение S[i] имеет тип AnsiChar, для строк типа WideString - WideChar В табл. 1 перечислены некоторые процедуры и функции обработки данных строковых типов. Совет: Программисты, работающие на С, привыкли записывать все строки в массивы с нуль-окончанием. Фактически они применяют в выражениях не строковые переменные, а указатели на них. Программисты, работающие на Basic, привыкли использовать строку как одно целое. Для типа AnsiString из Delphi годятся оба подхода.
Таблица 1. Строковые функции Функция Описание Concat(sl, s2, s3) Возвращает последовательное соединение строк. Эквивалентна оператору sl+s2+s3 Copy(s, pos, len) Возвращает подстроку длиной максимум len символов, начинающуюся в позиции pos строки s Delete(s, pos, len) Удаляет максимум len символов из строки s, начиная с позиции pos Insert(sourse, tar-get, pos) Вставляет строку source в строковую переменную target, начиная с позиции pos Length (s) Возвращает динамическую длину строки. Подобна функциям LEN в Basic и strlen — в C/C++ Pos(substring, s) Возвращает место первого вхождения подстроки substring в строку s. Подобна функциям SUBSTR в Basic и strstr () — в C/C++ SetLength(s, newlen) Задает новую динамическую длину newlen строковой переменной s SetString Задает содержимое и длину строки Str(x, s) Преобразует численное значение х в строковую переменную s StringOfChars Возвращает строку с конкретным числом символов UniqueString Делает данную строку уникальной со счетом обращений 1 Val (s, v, code) Преобразует строку s в соответствующее численное представление v
|
|
|
 |
 |
 |
|
|
Совет Дня |
|
Рожденные ползать! Летайте самолетами Air Moldova International!
|
|
Помощь сайту |
|

wmR381968438342 wmZ908421463397 |
|
|
 |
|