Операции над операндами типа PChar

   
На этом шаге мы перечислим функции, обрабатывающие значения типа PChar.

   
Напомним, что тип PChar является специальным указательным типом, введеным для поддержки
строк с завершающим нулем и имеющим следующее описание:

    type PChar = ^Char;

   
Object Pascal при включенной директиве {$Х+} позволяет использовать для работы с указателями типа PChar дополнительные,
по сравнению с другими указательными типами, операции суммирования (+) и вычитания (-).

   
Эти операции используются для увеличения и уменьшения смещения указателя на заданную величину. Кроме того, операцию вычитания допускается применять
для вычисления разности смещений двух указателей типа PChar.

procedure  TForm1.FormCreate(Sender:   TObject); 
var
    Str1, Str2, Res  :  PChar;
    i, j : Word; 
begin
    .  .  .  .  
    Res := Str1 + i;  //Res будет указывать на i символов дальше, чем Str1.
    Res := Str2 - i;  //Res будет указывать на i символов ближе, чем Str2.
    j := Strl - Str2; //j будет равняться числу символов, расположенных 
                      //между символами, на которые указывают Strl и Str2. 
                      //Strl и Str2 должны указывать на  один и 
                      //тот же символьный массив. 
end;

   
Стандартный синтаксис Object Pascal позволяет при сравнении указателей определять только их равенство или неравенство.
Расширенный синтаксис (при включенной директиве {$Х+}) допускает к значениям типа PChar применять также и операции <, >, <= и >= . Но, при условии,
что два сравниваемых указателя указывают на один и тот же массив символов.

   
Для поддержки операций со строками с завершающим нулем в Object Pascal используются следующие функции стандартного модуля SysUtils:

  • Функция StrAlloc - выделяет для строки с завершающим нулем буфер максимальной длины минус единица.
  • Функция StrBufSize - возвращает максимальное число символов, которые могут быть сохранены в буфере, выделенном функцией StrAlloc.
  • Функция StrCat - добавляет одну строку к концу другой строки и возвращает указатель на результирующую строку.
  • Функция StrComp - сравнивает две строки S1 и S2. Если S1 < S2, то результатом будет отрицательное число; если S1 = S2, то
    результатом будет число, равное 0; если S1 > S2, то результатом будет положительное число.
  • Функция StrCopy - копирует значение одной строки в другую.
  • Функция StrDispose - уничтожает строку, распределенную ранее с помощью функции StrNew.
  • Функция StrECopy - копирует значение одной строки в другую. Возвращает указатель на конец результирующей строки.
  • Функция StrEnd - возвращает указатель на завершающий строку нулевой символ.
  • Функция StrIComp - сравнивает две строки аналогично StrComp, но без различия регистра символов.
  • Функция StrLCat - присоединяет исходную строку к концу целевой строки. При этом обеспечивается, что длина результирующей строки не превышает заданного максимума. Возвращается указатель на строку-результат.
  • Функция StrLComp - сравнивает строки с заданной максимальной длиной.
  • Функция StrLCopy - копирует заданное число символов из исходной строки в результирующую строку и возвращает указатель на результирующую строку.
  • Функция StrLen - возвращает длину строки.
  • Функция StrLIComp - сравнивает две строки с заданной максимальной длиной без различия регистра символов.
  • Функция StrLower - преобразует строку в нижний регистр и возвращает указатель на нее.
  • Функция StrMove - перемещает последовательность символов из исходной строки в целевую строку и возвращает указатель на целевую строку.
  • Функция StrNew - выделяет для строки память в динамической области.
  • Функция StrPas - преобразует строку с завершающим нулем в строку типа String.
  • Функция StrPCopy - копирует строку типа String в строку с завершающим нулем и возвращает указатель на строку с завершающим нулем.
  • Функция StrPLCopy - копирует максимальное число символов строки String в строку с завершающим нулем.
  • Функция StrPos - возвращает указатель на первое вхождение заданной подстроки в строке, или nil, если искомая подстрока в строке не содержится.
  • Функция StrRScan - возвращает указатель на последнее вхождение заданного символа в строку, или nil, если символ в строке отсутствует.
  • Функция StrScan - возвращает указатель на первое вхождение указанного символа в строку, или nil, если символ в строке отсутствует.
  • Функция StrUpper - преобразует строку в верхний регистр и возвращает указатель на нее.

   
На следующем шаге мы рассмотрим операции над множествами.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий