如何正确格式化这一行?

时间:2013-11-28 23:25:56

标签: delphi

我有

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的行格式没有重载;

1 个答案:

答案 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也相当不错。