Турбо Паскаль 6.0

Процедура FormatStr Drivers


================================================================= Объявление procedure FormatStr(var Result: String; Format: String; var Params);

Функция Процедура форматирования строки, которая работает подобно функции языка Си vsprintf. Format включает спецификаторы формата, а Params содержит список параметров. FormatStr выполняет форматированный вывод строки в Result. Параметр Format может содержать любое число спецификаторов формата, для отображения параметров в Params. Формат спецификаторов - %[-][nnn]X, где - % указывает начало спецификатора формата; - [-] необязательный знак минуса, указывающий, что параметр будет выровнен влево (по умолчанию параметры при отображении выравниваются вправо); - [nnn] - необязательный десятичный спецификатор длины в диапазоне 0-255 (0 указывает на отсутствие длины, а не нуль означает, что выводится поле в nnn символов); - Х - символ формата: - 's' означает, что параметр указывает на строку; - 'd' означает десятичное представление LongInt параметра; - 'c' означает, что младший байт параметра - символ; - 'x' означает шестнадцатиричное представление параметра LongInt. - '#'устанавливает индекс параметра в nnn.

Например, если параметр указывает на строку, содержащую 'spiny', следующая таблица показывает спецификаторы и их результаты при печати:

Таблица 14.11. Спецификаторы формата и их результаты.

----------------------------------------- Спецификатор Результат ----------------------------------------- %6s ' spiny' %-6s 'spiny' %3s 'iny' %-3s 'spi' %06s '0spiny' %-06s 'spiny0' ----------------------------------------

Params - это нетипированный var параметр, содержащий параметры с соответствующимим спецификаторами формата в Format. Params должен быть массивом из LongInt или указателей или записью, содержащей LongInt или указатели. Например, для вывода строки сообщения об ошибке

Error in file [file name] at line [line number]

Вы должны послать следующую строку в Format:

'Error in file %s at line %d'.

Params должен содержать указатель на строку имени файла и Longint, представляющая число строк в файле. Это может быть сделано двумя способами: в массиве или в записи. Следующий пример показывает два типа объявлений и присвоений переменных, оба создают допустимые значения, передаваемые как Params в FormatStr.


type ErrMsgRec = record FileName: PString; LineNo: Longint; end;

ErrMsgArray = array[01] of Longint;

const TemplateMsg = 'Error in file %s at line %d';

var MyFileName: FNameStr; OopsRec: ErrMsgRec; DarnArray: ErrMsgArray; TestStr: String;

begin MyFileName := 'WARTHOG.ASM';

with OopsRec do begin FileName := @MyFileName; LineTo := 42; end; FormatStr(TestStr, TemplateMsg, OopsRec); Writeln(TestStr);

DarnArray[0] := Longint(@MyFileName); DarnArray[1] := 24; FormatStr(TestStr, TemplateMsg, DarnArray); Writeln(TestStr); end;

См. также Функцию SystemError, объект TParamText.


Содержание раздела