Лекция 8
Тип Variant
var
V1, V2, V3, V4: Variant;
I: Integer; D: Double; S: string;
begin
V1 := 1; // integer value, integer type
V2 := 1234.5678; // real value, real type
V3 := ‘1000’; // string value, string type
V4 := V1 + V2 + V3; // double value 2235.5678, double type
I := V1;
D := V2;
S := V3; // S=’1000’
I := V4; // I = 2236
end;
Delphi: Help, “Variant type conversions”
VB6, VBA-MS/Office: Тип Variant разрешен.
VBScript: Все переменные есть переменные типа Variant.
VB.Net: Тип Variant запрещен.
Тип pChar
Фактически:
type
pChar = ^Char;
Формально:
pChar и ^Char есть разные типы.
Пример
var
mC: array[0..11] of char;
begin
mC[0] := ‘N’; mC[1] := ‘o’; mC[2] := ‘v’; mC[3] := ‘e’; mC[4] := ‘m’;
mC[5] := ‘b’; mC[6] := ‘e’; mC[7] := ‘r’;
mC[8] := #0; // mC[8] := Chr(0);
StrPCopy(mC, ‘November’);
end.
Процедура StrDispose
procedure StrDispose(SP: PChar);
Удаляет из динамической памяти строку. Строка размещается в динамической памяти функцией StrNew.
SP - удаляемая строка.
Если SP = nil, процедура ничего не выполняет.
Функция StrCat
function StrCat(Dest, Source: PChar): PChar;
Присоединяет к концу строки Dest строку Source. Результат - объединенная строка. Размер полученной строки не контролируется. Dest - первая строка; Source - вторая строка.
Функция StrComp
function StrComp(SPl, SP2: PChar): Integer;
Сравнивает две строки (символы сравниваются слева направо своими кодами). Результат меньше нуля, если первая строка меньше второй, равен нулю, если строки равны, и больше нуля, если первая строка больше второй.
Функция StrCopy
function StrCopy(Dest, Source: PChar): PChar;
Копирует строку Source в строку Dest. Возвращает в качестве результата новую строку Dest.
Source - копируемая строка;
Dest - строка для копирования.
Размер полученной строки не контролируется.
Функция, StrECopy
function StrECopy(Dest, Source: PChar): PChar; Копирует строку Source в строку Dest. Возвращает в качестве результата указатель на последний (нулевой) элемент строки.
Source - копируемая строка;
Dest - строка для копирования.
Размер полученной строки не контролируется.
Функция StrEnd
function StrEnd(SP: PChar): PChar;
Получает указатель на конец строки SP (на завершающий нулевой элемент).
SP - исходная строка.
Функция StrlComp
function StrLIComp(SPl, SP2: PChar): PChar;
Сравнивает строки SPl и SP2 без различия между прописными и строчными латинскими буквами. Результат такой же, что и у функции StrComp.
SPl, SP2 - сравниваемые строки.
Функция StrLCat
function StrLCat(Dest,Source: PChar; MaxLen: Word): PChar;
Добавляет в конец строки Dest MaxLen символов строки Source. Если размер
строки Source меньше MaxLen, копируется фактическое количество символов. В
качестве результата возвращает объединенную строку.
Dest - первая строка;
Source - копируемая строка;
MaxLen - число копируемых символов.
Размер полученной строки не контролируется.
Функция StrLComp
function StrLComp(SPl, SP2: PChar; MaxLen: Word): PChar;
Сравнивает MaxLen первых символов строк SPl и SP2. Если размер строк меньше MaxLen, сравнивается фактическое количество символов. Результат такой же, что и у функции StrComp.
SPl, SP2 - сравниваемые строки;
MaxLen - число сравниваемых символов.
Функция StrLCopy
function StrLCopy(Dest, Source; PChar; MaxLen: Word): PChar;
Копирует MaxLen символов строки Source в строку Desi. Если размер строки Source меньше MaxLen, копируется фактическое число символов. Результат - скопированная строка.
Dest - строка для копирования;
Source - колируемая строка;
MaxLen - число копируемых символов.
Размер полученной строки не контролируется.
Функция StrLen
function StrLen(SP: PChar): Word;
Определяет размер строки без учета заключительного символа с кодом 0.
SP - исследуемая строка.
Функция StrLIComp
function StrLIComp(SPl, SP2: PChar; MaxLen: Word): PChar;
Сравнивает MaxLen первых символов строк SPl и SP2 без различия между прописными и строчными латинскими буквами. Если размер строк меньше MaxLen, сравнивается фактическое число символов. Результат такой же, что и у функции StrComp.
SPl,SP2 - сравниваемые строки;
MaxLen - число сравниваемых символов.
Функция StrLower
function StrLower(SP: PChar): PChar;
Преобразует в строке SP прописные латинские буквы в строчные. Результат -преобразованная строка.
SP - преобразуемая строка.
Функция StrMove
function StrMove(Dest, Source: PChar; Count: Word): PChar;
Копирует Count символов строки Source в строку Dest, даже если это число больше размера строки Source. Результат - скопированная строка.
Dest - первая строка;
Source - вторая строка. Размер полученной строки не контролируется.
Функция StrNew
function StrNew(SP: PChar): PChar;
Создает в динамической области копию строки SP. Результат - указатель на новую строку. Удаляется строка процедурой StrDispose.
SP - копируемая строка.
Функция StrPas
function StrPas(SP: PChar): string;
Преобразует ASCIIZ-строку в строку типа string. Результат - преобразованная строка.
SP - исходная строка.
Функция StrPGopy
function StrPCopy(Dest: PChar; Source: string): PChar; Преобразует строку Source типа string в ASCHZ-строку Dest. Результат - указатель на преобразованную строку.
Source - преобразуемая строка;
Dest - преобразованная строка.
Размер полученной строки не контролируется.
Функция StrPos
function StrPos(SPl, SP2: PChar): PChar;
Ищет первое вхождение строки SP2 в строку SPl. Результат - указатель на первое вхождение строки SP2 в строку SPl - либо nil, если такого вхождения нет.
SPl - строка, в которой ищется вхождение строки SP2;
SP2 - искомая строка.
Функция StrRScan
function StrRScan(SP: PChar; Chr: Char): PChar;
Ищет последнее вхождение символа Chr в строку SP. Результат - указатель на найденный символ либо nil, если такого символа нет.
SP - строка, где ищется символ;
Chr - искомый символ.
Функция StrScan
function StrScan(SP: PChar; Chr: Char): PChar;
Ищет первое вхождение символа Chr в строку SP Результат - указатель на найденный символ либо nil, если такого символа нет.
SP - строка, где ищется символ;
Chr - искомый символ.
Функция StrUpper
function StrUpper(SP: PChar): PChar;
Преобразует в строке SP строчные латинские буквы в прописные. Результат - преобразованная строка.
SP - преобразуемая строка.