Системное программирование в UNIX средствами Free Pascal

Процедура 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



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