И так, на текущий момент в Stealth 6.1.3, мне известны следующие функции работы со строками:
Code: Select all
function Length(const S: String): Integer; // Возвращает количество символов в строке S.
procedure SetLength(var S: String; L: LongInt); // Изменяет размер строки
function PadL(S: String; I: LongInt): String; // Дополнение строки s пробелами слева до длины l
function PadR(S: String; I: LongInt): String; // Дополнение строки s пробелами справа до длины l
function PadZ(S: String; I: LongInt): String; // Дополнение строки s символами '0' слева до длины l
function Replicate(C: Char; I: LongInt): String; // Создание строки длиной l из символов c
function StringOfChar(C: Char; I: LongInt): String; // Синоним Replicate
function BMSearch(I: Integer; const S,P: String): Integer; // Возвращает первое вхождение подстроки P в строке S начиная с позиции I.
procedure StrBreakApart(const S,D: String; P: TStrings); // Режет строку S на подстроки, используя символ-разделитель D. Результат запишет в список P.
function Pos(StrSub: String; Str: String): Integer; // Возвращает позицию (индекс) первого вхождения StrSub в строке Str. Если StrSub нет в Str, возвращает 0.
function Insert(Source: String; var S: String; Index: Integer): Integer; // Вставляет строку Source в строку S, начиная с номера символа, равного Index
procedure Delete(var S: String; Index, Count: Integer); // Удаляет из строки S подстроку, начинающуюся с номера символа, равного Index, и содержащую до Count символов.
function Copy(S: String; Index, Count: Integer): String; // Возвращает подстроку строки S, начиная с номера символа, равного Index и содержащую до Count символов.
Code: Select all
function IntToStr(N: Integer): String; // Преобразует целое число N в строку.
function Int64ToStr(N: Int64): String;
function IntToHex(N: Integer, Len: Byte): String; // Преобразует целое число N в строку в 16-ричном формате длинной Len цифр.
function StrToInt(S: String): Integer; // Преобразует строку S в целое число.Понимает 16-ричный формат, нужно только перед таким числом в строке иметь символ '$'.
function StrToInt64(S: String): Int64;
function FloatToStr(X: Extended): String; // Преобразует число с плавающей точкой X в строку.
function StrToFloat(S: String): Extended; // Преобразует строку S в число с плавающей точкой.
function FormatDateTime(const Formatting: String; DateTime: TDateTime: String; // Мощная функция, по форматированию дат/времен, подробнее см. http://www.delphibasics.ru/FormatDateTime.php
function DateTimeToStr(DateTime: TDateTime): String; // Преобразует дату и время DateTime в строку.
function DateToStr(Date: TDateTime): String; // Преобразует дату Date в строку.
function TimeToStr(Time: TDateTime): String; // Преобразует время Time в строку.
Code: Select all
function Trim(const S: String): String; // Удаляет из строки S начальные и завершающие пробелы и управляющие символы.
function TrimLeft(const S: String): String; // Удаляет из строки S начальные пробелы и управляющие символы.
function TrimRight(const S: String): String; // Удаляет из строки S завершающие пробелы и управляющие символы.
function AnsiLowerCase(const S: String): String; // Возвращает строку S, преобразованную к нижнему регистру.
function AnsiUpperCase(const S: String): String; // Возвращает строку S, преобразованную к верхнему регистру.
Code: Select all
function LowerCase(const S: String): String;
function UpperCase(const S: String): String;
Кроме того, если в скрипте написать uses sysutils; то станут доступны функции:
Code: Select all
function StringReplace(const S, OldPattern, NewPattern: String; Flags: TReplaceFlags): String; // Заменяет в строке S подстроку OldPattern на строку NewPattern с учётом флага TReplaceFlags.
//Для работы с этой функцией нужно создать переменную типа TReplaceFlags - это множество, и включить в него одно или оба значения из следующих:
// rfReplaceAll - будут заменены все вхождения. Если это значение не будет включено во множество, то будет заменено только первое вхождение;
// rfIgnoreCase - замена будет без учёта регистра символов. Если это значение не будет включено во множество, то замена будет чувствительна к регистру символов.
Code: Select all
function CompareStr(const FirstString, SecondString: String ) : Integer; // Сравнивает строки с учетом регистра
function CompareText(const FirstString, SecondString: String ) : Integer; // Сравнивает строки с без учета регистра