PDA

Просмотр полной версии : wsprintf delphi


s0l_ir0n
19.03.2009, 08:38
Возникла проблема. Имеется строка 18 символов, нужно сделать вывод этой строки в формате xxx-xxx-xxx-xxx-xxx-xxx, немогу понять как это сделать, подскажите.
Я использую
const
FormatStr = '%d-%d-%d-%d-%d-%d';
wvsprintf(PChar(finishkey), FormatStr,PChar(@finishkey));
Но выходит совсем не то, что нужно.

slesh
19.03.2009, 10:47
const
FormatStr = '%d-%d-%d-%d-%d-%d';
var
buf:array[0..255] of char;
param:array[0..5] of integer;
begin
param[0]:=10;
param[1]:=2;
param[2]:=3;
param[3]:=4;
param[4]:=5;
param[5]:=6;
wvsprintf(buf, FormatStr,@param);
showmessage(buf)
end;


Чтобы можно было передавать разного типа данные, то придется в массив вбивать адреса их типа

const
FormatStr = '%d-%d-%s-%d-%d-%d';
var
buf:array[0..255] of char;
param:array[0..5] of dword;
s:string;
begin
s:='hello'#0;
param[0]:=10;
param[1]:=2;
param[2]:=dword(@s[1]);
param[3]:=4;
param[4]:=5;
param[5]:=6;
wvsprintf(buf, FormatStr,@param);
showmessage(buf)
end;