На главную

Функции работы со строками с завершающим нулем

Cледующие функции обеспечивают работу со строками с завершающим нулем:

Функции работы со строками с завершающим нулем.
ФункцияОписание
AnsiStrCompСравнивает две строки с завершающим нулем.
AnsiStrICompСравнивает две строки с завершающим нулем без учета регистра.
AnsiStrLCompСравнивает первые MaxLen байт двух строк с завершающим нулем, с учетом регистра.
AnsiStrLICompСравнивает первые MaxLen байт двух строк с завершающим нулем, без учета регистра.
AnsiStrLowerПереводит все символы строки с завершающим нулем в нижний регистр.
AnsiStrPosВозвращает указатель на первое вхождение заданной подстроки в строку.
AnsiStrRScanВозвращает указатель на последнее вхождение заданного символа в строку.
AnsiStrScanВозвращает указатель на первое вхождение заданного символа в строку.
AnsiStrUpperПереводит все символы строки с завершающим нулем в верхний регистр.
ExtractStringthЗаполняет список (массив) строк подстроками, из строки с завершающим нулем, которые отделены друг от друга разделителями.
LineStartИщет конец последней полной строки (знак перевода каретки) в буффере.
SearchBufНаходит подстроку внутри текстового буфера.
StrAllocВыделяет память под символьный буфер, заданного размера, в "куче" .
StrBufSizeВозвращает размер символьного буфера, выделенного при помощи StrAlloc или StrNew.
StrCatСоединяет две строки в одну.
StrCompСравнивает две строки между собой.
StrCopyКопирует строку.
StrDisposeОсвобождает символьный буфер, выделенный при помощи StrAlloc или StrNew.
StrECopyКопирует строку и возвращает указатель на коец строки.
StrEndВозвращает указатель на конец строки.
StrFmtФорматирует одно или более значений в строке.
StrICompСравнивает две строки без учета регистра.
StrLCatСоединяет две строки в одну результирующую строку, с заданной максимальной длинной.
StrLCompСравнивает две строки на заданной максимальной длине.
StrLCopyКопирует строку до заданной максимальной длины.
StrLenВозвращает длину строки.
StrLFmtФорматирует одно или более значений в строке на заданной максимальной длине.
StrLICompСравнивает две строки на заданной максимальной длине без учета регистра.
StrLowerПереводит строку в нижний регистр.
StrMoveПереносит блок символов из одной строки в другую.
StrNewПомещает строку в "кучу".
StrPCopyКопирует строку AnsiString (длинную строку Paskal) в строку с завершающим нулем.
StrPLCopyКопирует строку AnsiString (длинную строку Paskal) в строку с завершающим нулем с заданной максимальной длиной.
StrPosВозвращает указатель на первое вхождение заданной подстроки в строку.
StrRScanВозвращает указатель на последнее вхождение заданного символа в строку.
StrScanВозвращает указатель на первое вхождение заданного символа в строку.
StrUpperПереводит строку в верхний регистр.

В Delphi имеется тип PChar, представляющий так называемую строку с завершающим нулем. Строки с завершающим нулем не содержат байтов длины. В отличие от обычных строк (см. Функции работы со строками.) они состоят из последовательности ненулевых символов, за которым следует символ NULL (#0). Никаких ограничений на длину строк с завершающим нулем не накладывается. Фактически он указывает на символ

PChar=^CHAR;

При работе со строками с завершающим нулем целесообразно использовать расширенный синтаксис языка Delphi, который задается компилятору директивой {$X+} (хотя ее можно не указывать в начале программы, т.к. она устанавливается по умолчанию). Расширенный синтаксис позволяет использовать особые правила для стандартного типа PChar и массивов с нулевым индексом. В частности стандартные процедуры Read, ReadLn, Str и Val могут быть использованы с такими массивами, а процедуры Write, WriteLn, Val, AssignFile и Rename могут применяться как с массивами, так и с символьными указателями.

Расширенный синтаксис позволяет ставить в соответствие строкам с завершающим нулем символьный массив типа

PChar=ARRAY[0..X] OF CHAR;

где X - положительное число типа Integer, определяющее количество символов в строке, не считая завершающего символа с кодом 0. В отличие от типа String, символ с индексом 0 здесь является первым символом строки, а последний символ с индексом X - завершающим символом с кодом 0.

Стандартные функции работы со стандартными строками имеют аналоги для работы с мультибайтными строками (AnsiString), которые к тому же обеспечивают прядок сортировки символов в соответствии с установками национального алфавита. В типе AnsiString символы кодируются в коде ANSI. Имена мультибайтных функций начинаются с Ansi-. Например, мультибайтная версия функции StrPos будет AnsiStrPos. Поддержка мультибайтных символов зависит от оперативной системы и базируется на ее текущей локализации.


Список литературы:

  1. Гофман В.Э., Хомоненко А.Д. Delphi 6. - СПб. БХВ-Петербург, 2002. - 1152 с.: ил.
  2. Турбо Паскаль 7.0 - К. Торгово-издательское бюро BHV, 1996 - 448 с.: ил.
  3. Delphi7 Help
На главную


Hosted by uCoz