Процедура sprintf
Прежде всего нужно отметить еще один момент, касающийся процедуры sprintf. Дело в том, что не следует думать о процедуре sprintf как о процедуре вывода. На самом деле она представляет собой наиболее гибкую из библиотечных процедур, работающих со строками и преобразующих форматы данных. Следующий текст показывает использование этой функции:
(* Процедура genkey - генерация ключа базы данных *)
uses stdio;
(* Длина ключа всегда будет равна 20 символам *)
function genkey (buf:pchar; const suppcode:pchar; orderno:longint):pchar;
begin
(* Проверка размера ключа *)
if strlen (suppcode) <> 10 then
begin
genkey:=nil;
exit;
end;
sprintf (buf, '%s_%.9d', [suppcode, orderno]);
genkey:=buf;
end;
var
buf:array [0..99] of char;
begin
if genkey (buf, 'supplement', 12)<>nil then
printf ('Key: %s'#$a, [pchar(buf)]);
end.
Тогда вызов процедуры genkey
printf('%s'#$a, [genkey(buf, 'abcdefghij', 12)]);
выведет такую строку ключа:
abcdefghij_000000012