Процедуры и функции для работы со строками

FunctionAnsiLowerCase (constS: String): String; Возвращает исходную строку S, в которой все заглавные буквы заменены на строчные в соответствии с национальной кодировкой Windows (т.е. с учетом кириллицы).
Function AnsiUpperCase (constS: String): String; Возвращает исходную строку S, в которой все строчные буквы заменены на заглавные в соответствии с национальной кодировкой Windows.
FunctionConCat (S1 [, S2, …,Sn]: String): String; Возвращает строку, представляющую собой сцепление строк параметров S1, S2 … Sn.
FunctionCopy (St: String; Index, Count: Integer); Копирует из строки St Count символов начиная с символа с номером Index.
ProcedureDelete (St: String; Index, Count: Integer); Удаляет Count символов из строки St начиная с символа с номера Index.
ProcedureInsert (SubSt: String; St, Index: Integer); Вставляет подстроку SubSt в строку St начиная с символа с номером Index.
Function Length (St: String): Integer; Возвращает текущую длину строки St.
FunctionLowerCase (constS: String): String; Возвращает исходную строку S, в которой все латинские заглавные буквы заменены на строчные.
ProcedureOleStrToStrVar (Source: PwideChar; varDest: String); Копирует «широкую» (двухбайтную строку в обычную строку Object Pascal.
FunctionPos (SubSt, St: String): Integer; Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль.
ProcedureSetLenght (St: String; NewLenght: Integer); Устанавливает новую (меньшую) длину NewLenght строки St. Если NewLenght больше текущей длины строки, обращение к SetLenght игнорируется.
FunctionStringOfChar (Ch: Char; Count: Integer): String; Создает строку, состоящую из Count раз повторенного символа Ch.
FunctionStringToOleStr (constSource: String): PWideChar; Копирует обычную строку в двухбайтную.
FunctionStringToWideChar (constSource: String; Dest: PWideChar; DestSize: Integer): PWideChar; Преобразует обычную строку в строку с символами UNICODE.
FunctionUpperCase (constS: String): String; Возвращает исходную строку S, в которой все строчные латинские буквы заменены на заглавные.
Подпрограммы преобразования строк в другие типы
Function StrToCurr (St: String): Currency; Преобразует символы строки в целое число типа Currency. Строка не должна содержать ведущих или ведомых пробелов.
Function StrToDate (St: String): TDateTime; Преобразует символы строки St в дату. Строка должна содержать два или три числа, разделенными правильными для Windows разделителями даты (в русифицированной версии таким разделителем является «.»). Первое число – правильный день, второе – правильный месяц. Если указано третье число, оно должно задавать год в формате XX или XXXX. Если символы года отсутствуют, дата дополняется текущим годом. Например: DateToStr(StrToDate (¢28.06¢)) даст строку ¢28.06.99¢
FunctionStrToDateTime (St: String): TDateTime; Преобразует символы строки St в дату и время. Строка должна содержать правильную дату (см. StrToDate) и правильное время (см. StrToTime) разделенные пробелом, например: StrToDateTime (¢28.06 18:23¢)
FunctionStrToFloat (St: String): Extended; Преобразует символы строки St в вещественное число. Строка не должна содержать ведущих или ведомых пробелов.
FunctionStrToInt (St: String): Integer; Преобразует символы строки St в целое число. Строка не должна содержать ведущих или ведомых пробелов.
Function StrToIntDef (St: String; Default: Integer): Integer; Преобразует символы строки St в целое число. Если строка не содержит правильного представления целого числа, возвращает значение Default.
FunctionStrToIntRange (St: String; Min, Max: LongInt): LongInt; Преобразует символы строки St в целое число и возбуждает исключение ErangeError, если число выходит из заданного диапазона Min…Max.
FunctionStrToTime (St: String): TDateTime; Преобразует символы строки St во время. Строка должна содержать два или три числа, разделенных правильным для Windows разделителем времени (для русифицированной версии таким разделителем является «:»). Числа задают часы, минуты и, возможно секунды. За последним числом через пробел могут следовать символы «am» или «pm», указывающие на 12-часовой формат времени.
ProcedureVal (St: String; var X: Code: Integer); Преобразует строку символов St во внутреннее представление целой или вещественной X, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, и тогда в X помещается результат преобразования, в противном случае он содержит номер позиции в строке St, где обнаружен ошибочный символ, и в этом случае содержимое X не меняется. В строке St могут быть ведущие и/или ведомые пробелы.
Подпрограммы обратного преобразования
FunctionDateTimeToStr (Value: TDateTime): String; Преобразует дату и время из параметра Value в строку символов.
ProcedureDateTimeToString (var St: String; Format: String; Value: TDateTime); Преобразует дату и время из параметра Value в строку St в соответствии со спецификатором Format.
FunctionDateToStr (Value: TDateTime): String; Преобразует дату из параметра Value в строку символов.
FunctionFloatToStr (Value: Extended): String; Преобразует вещественное значение Value в строку символов.
FunctionFloatToStrF (Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): String; Преобразует вещественное значение Value в строку символов с учетом формата Format и параметров Precision и Digits.
Function FormatDateTime (Format: String; Value: TDateTime): String; Преобразует дату и время из параметра Value в строку символов в соответствии со спецификаторами параметра Format.
FunctionFormatFloat (Format: String; Value: Extended): String; Преобразует вещественное значение Value в строку символов с учетом спецификаторов формата Format.
Function IntToHex (Value: Integer; Digits: Integer): String; Преобразует целое число Value в строку символьного представления шестнадцатеричного формата: Digits – минимальное количество символов в строке.
Function IntToStr (Value: Integer): String; Преобразует целое значение Value в строку символов.
ProcedureStr (X [:Width [:Decimals]]; var St: String; Преобразует число X любого вещественного или целого типов в строку символов St; параметры Width и Decimals. Если они присутствуют, задают формат преобразования:Width определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного числа X, а Decimals – количество символов в дробной части (этот параметр имеет смысл только в том случае, когда X – вещественное число).
FunctionTimeToStr (Value: TDateTime): String; Преобразует время из параметра Value в строку символов.  
Подпрограммы для работы с нуль-терминальными строками
Function CharToOem (Str, OemStr: Pchar): boolean; Преобразует символы строки Str из кодировки ANSI в кодировку MS DOS и перемещает результат в OemStr. Всегда возвращает True.
FunctionCharToOemBuff (Str, OemStr: Pchar; MaxLen: LongInt): boolean; Преобразует не более MaxLen символов строки Str из кодировки ANSI в кодировку MS DOS и помещает результат в OemStr. Всегда возвращает True.
Function OemToChar (OEMStr, Str: Char): boolean; Преобразует символы из кодировки MS DOS в кодировку ANSI и возвращает True.
Function OemToCharBuff (OEMStr, Str: PChar; MaxLen: Longint): Bool; Преобразует не более MaxLen символов строки OemStr из кодировки MS DOS в кодировку ANSI и помещает результат в Str. Всегда возвращает True.
FunctionStrCat(Dest, Source: PChar): PChar; Копирует строку Source в конец строки Dest и возвращает указатель на строку Dest.
Function StrComp (Strl, Str2: PChar): Integer; Побайтно сравнивает строку Strl со строкой Str2 и возвращает следующий результат: = 0 для Strl = Str2; >0 для Str1>Str2; < 0 для Strl<Str2.
FunctionStrCopy (Dest, Source: PChar): PChar; Копирует строку Source в строку Dest и возвращает указатель на Dest. StrCopy не проверяет реальный размер памяти, связанный с Dest (он должен быть не меньше StrLen(Source)+1).
Procedure StrDispose (Str:PChar); Удаляет строку Str из памяти. Строка должна быть предварительно помещена в память функцией StrNew. Если Str = NIL, процедура ничего не делает.
Function StrECopy (Dest,Source: PChar): PChar; Объединяет строки. Эта функция работает в точности как StrCat, но возвращает указатель на конец сцепленных строк, т.е. на терминальный ноль.
Function StrEnd (Str:PChar): PChar; Функция возвращает указатель на терминальный ноль строки Str.
FunctionStrIComp (Strl, Str2: PChar): PChar; Функция сравнивает строки, игнорируя возможную разницу в высоте букв. Возвращает такой же результат, как и StrComp. Замечу, что функция правильно работает лишь с латиницей. Для кириллицы ее нужно модифицировать.
FunctionStrLCat (Dest, Source: PChar; MaxLen: Word): PChar; Копирует символы строки Source в конец строки Dest до тех пор, пока не будут скопированы все символы или пока длина сцепленной строки Dest не достигнет MaxLen. Возвращает указатель на сцепленную строку. В отличие от StrCopy эта функция блокирует возможное переполнение области памяти, связанной с Dest. Обычно в качестве MaxLen используется выражение SizeOf (Dest) -1.
Function StrLComp (Dest, Source: PChar; MaxLen: Word): PChar; В отличие от StrComp сравнивает не более MaxLen символов строк. Возвращаемый результат такой же, как и у StrComp.
Function StrLCopy (Dest, Source: PChar; MaxLen: Word): PChar; Копирует символы из строки Source в строку Dest до тех пор, пока не будет скопирована вся строка или пока не будет скопировано MaxLen символов. В отличие от StrCopy блокирует возможное переполнение области памяти, связанной с Dest. В качестве MaxLen обычно используется выражение SizeOf (Dest) -1.
FunctionStrLen (Str:PChar): Cardinal; Возвращает длину строки.
FunctionStrLIComp (Strl, Str2: PChar; MaxLen: Word): PChar; Сравнивает не более MaxLen символов строк, проверяя точное соответствие высоты букв. Возвращаемый результат см. StrComp. Функция правильно работает только с латиницей.
FunctionStrLower (Str:PChar): PChar; Преобразует заглавные буквы строки Str к строчным и возвращает указатель на результат. Функция правильно работает только с латиницей.
Function StrMove (Dest, Source: PChar; Count: Word): PChar; Копирует точно Count символов строки Source в строку Dest и возвращает указатель на результат. Функция игнорирует действительные размеры строк и может выйти за их пределы.
Function StrNew (Str: PChar) Pchar; Помещает строку в память.
FunctionStrPas (Str: PChar) : String; Преобразует нуль-терминальную строку в строку String.
Function StrPCopy (Str: PChar; S: String): PChar; Преобразует строку String в нуль-терминальную строку. Возвращает указатель на Str.
Function StrPos (Strl, Str2: PChar): PChar; Ищет подстроку Str2 в строке Strl и возвращает указатель на первое вхождение Str2 или NIL, если подстрока не найдена.
Function StrScan (Str: PChar; Ch: Char): Pchar; Ищет символ Ch в строке Str и возвращает указатель на последний обнаруженный символ Ch или NIL, если символ не найден.
FunctionStrScan(Str; PChar; Ch: Char): PChar; Ищет символ Ch в строке Str и возвращает указатель на первый обнаруженный символ Ch или NIL, если символ не найден.
FunctionStrUpper (Str: Pchar): Pchar; Преобразует строчные буквы строки Str к заглавным и возвращает указатель на результат. Функция правильно работает только с латиницей.

Правила использования параметров функцииFloatToStrF

ЗначениеFormat Описание
ffExponent Научная форма представления с множителем еХХ («умножить на 10 в степени XX»). Precision задает общее количество десятичных цифр мантиссы, Digits - количество цифр в десятичном порядке XX. Число округляется с учетом первой отбрасываемой цифры: 3,1416Е+00.
ffFixed Формат с фиксированным положением разделителя целой и дробной частей. Precision задает общее количество десятичных цифр в представлении числа, Digits - количество цифр в дробной части. Число округляется с учетом первой отбрасываемой цифры: 3,14.
ffGeneral Универсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа. Соответствует формату ffFixed, если количество цифр в целой части меньше или равно Precision, а само число - больше или равно 0,00001, в противном случае соответствует формату ffExponent: 3,1416.
ffNumber Отличается от: ffFixed использованием символа-разделителя тысяч при выводе больших чисел (для русифицированной версии Windows таким разделителем является пробел). Для Value = p*1000 получим 3141,60.
ffCurrency Денежный формат. Соответствует ffNumber, но в конце строки ставится символ денежной единицы (для русифицированной версии Windows - символы «р.»). Для Value = p*1000 получим 3 141, 60р.

Наши рекомендации