Delphi 如何正确格式化此行?
我有 标准损坏当然是一个字符串 HowmuchDamge和WhatGetsDaged是整数 我知道我必须转换intToString(),但是要转换的格式是什么? 示例Delphi 如何正确格式化此行?,delphi,Delphi,我有 标准损坏当然是一个字符串 HowmuchDamge和WhatGetsDaged是整数 我知道我必须转换intToString(),但是要转换的格式是什么? 示例Send_Damage_Data_模板:='pd%s' 如果他们把字符串放在哪里,那么它就会发送 pd[howmuchdamage][whatgetsdamage]作为字符串。。但是如果它们是整数,我怎么设置呢 更新 pd只是协议代码,所以服务器知道如何处理它 strDamage := format(SEND_DAMAGE_DATA
Send_Damage_Data_模板:='pd%s'代码>
如果他们把字符串放在哪里,那么它就会发送
pd[howmuchdamage][whatgetsdamage]作为字符串。。但是如果它们是整数,我怎么设置呢
更新
pd只是协议代码,所以服务器知道如何处理它
strDamage := format(SEND_DAMAGE_DATA_TEMPLATE,HowMuchDamage,WhatGetsDamaged);
我得到一个错误,说strDamgae行上没有格式重载 注意:此答案是以问题的原始形式发布的,而不是包含实际代码的编辑版本。请参阅修订历史记录
我不确定SEND\u DAMAGE\u DATA\u模板
的内容表示什么,如pd%s'所述,因为
%s`是一个字符串说明符。为清楚起见,如果包含:
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);
%d
格式说明符表示它需要两个整数值
然后,您可以将其格式化为以下格式:
SEND_DAMAGE_DATA_TEMPLATE = 'Damage: %d Location: %d';
%d
是整数的格式说明符
该函数的文档记录非常清楚,并且具有相当好的性能。这没有什么意义。代码不编译。格式字符串有一个而不是两个占位符。什么是pd%s?请澄清.pd只是我发送给服务器的代码,以便它知道如何处理字符串。您的错误行没有执行我告诉您的操作。请更仔细地阅读我的代码示例,并阅读调用Format
中的每个字符。尤其是代码中缺少的两个[]
字符。@KenWhite括号。。。。谢谢:我不觉得它被用来做这里应该用的东西……是的,这就是我要找的。。那么,如果我发送这样的格式,它会将整数转换为字符串,正确吗?@Glen为什么不阅读文档?很清楚。有一些例子。你为什么不自己动手呢?我知道你有能力这样做。甚至连文档都不看似乎很懒。@KenWhite所以如果HowMuchDamge:=5
和WhatGetsDamaged:=3
它会将pd53作为字符串发送正确吗?@Glen:显然是的。Format
函数总是返回一个字符串,因此为了在结果中放入两个整数值,必须将它们转换为字符串。“我不知道这怎么不清楚。@KenWhite谢谢,我不确定是否必须在末尾添加%s或其他东西,以告诉它以字符串形式发送。”。
strDamage := Format(SEND_DAMAGE_DATA_TEMPLATE, [ HowMuchDamage,
WhatGetsDamaged ]);