我有
strDamage := format(SEND_DAMAGE_DATA_TEMPLATE,HowMuchDamage,WhatGetsDamaged);
strDamage当然是一个字符串 HowmuchDamge和WhatGetsDamaged是整数。
我知道我必须转换intToString()但是这样做的格式是什么?
示例Send_Damage_Data_Template := 'pd%s';
如果他们在那里发送字符串 pd [howmuchdamage] [whatgetsdamage]作为一个字符串..但是如果它们是整数,我该如何设置它?
更新。
pd只是协议代码,因此服务器知道如何处理它
procedure TCardcommunicator.SendDamage(HowMuchDamage : integer; WhatGetsDamaged : integer);
var
strDamage : string;
begin
strDamage := format(SEND_DAMAGE_DATA_TEMPLATE,HowMuchDamage,WhatGetsDamaged);
FBackEnd.Send(format(SEND_DAMAGE_PKT_TEMPLATE,[length(strDamage),strDamage]));
end;
SEND_DAMAGE_DATA_TEMPLATE = 'pd%d%d';
SEND_DAMAGE_PKT_TEMPLATE = 'pd%.4d%s'+ chr(13) + chr(10);
我收到错误消息说strDamgae的行格式没有重载;
答案 0 :(得分:4)
注意:此答案已发布到问题的原始形式,而不是具有实际代码的已编辑版本。请参阅修订历史。
我不确定SEND_DAMAGE_DATA_TEMPLATE
%s表示pd%s', as
表示的内容是字符串说明符。为清楚起见,如果它包含:
SEND_DAMAGE_DATA_TEMPLATE = 'Damage: %d Location: %d';
%d
格式说明符表示它期望两个整数值。
然后您可以将其格式化为:
strDamage := Format(SEND_DAMAGE_DATA_TEMPLATE, [ HowMuchDamage,
WhatGetsDamaged ]);
%d
是整数的格式说明符。
Format
函数Format Strings
非常清楚地记录在案,并且example也相当不错。