【问题标题】:Is there any .NET string.format compatible function for Delphi win32?Delphi win32 是否有任何 .NET string.format 兼容功能?
【发布时间】:2020-02-28 09:37:12
【问题描述】:

Delphi Win32 有 .NET string.format 兼容功能吗?

我想使用它的参数顺序语法。

我在delphi3000.com找到了one,但是很简单,不支持数字精度等。

你不知道更好的开源实现吗?

谢谢。

【问题讨论】:

  • 为什么不用Delphi的SysUtils.Format功能很全。 docwiki.embarcadero.com/VCL/en/SysUtils.Format ?
  • 当然我用的是格式化功能。但它不支持更改参数顺序。尤其是在将消息文本翻译成多种语言时,它没有用处。
  • 支持改变参数顺序:Format('%1:s - %0:d', [7, 'Text'])
  • 请更准确地说明您在 Delphi 中寻找的 .Net 功能的哪些方面。在评论中,您提到了参数顺序。您还需要大括号语法吗?从复合格式中省略类型信息的能力?参数列表中的任意对象?
  • 不要删除问题,看起来对我很有价值。从 RRUZ 的评论中编译您自己的答案,并可能我的答案并将其发布作为答案。我最初自己对RRUZ的评论给出了类似的答案,但当我看到RRUZ的评论是9分钟前时立即删除。

标签: delphi formatting


【解决方案1】:

使用 SysUtils.Format。

它还支持 参数顺序语法,就像 .Net 中的 string.format 一样。

您可以像以下示例一样更改参数顺序。

格式('%1:s - %0:d', [7, 'Text'])


由于我是一名 C 程序员,我认为 SysUtils.Format 就像 C 中的 printf。

但是 SysUtils.Format 不只是像“printf”,而且它更强大,正如 RRUZ 和 Cosmin Prund 在上面的 cmets 中教我的那样。 (我应该检查一下help ;-)

我想要 .Net 的 string.format 主要是因为我想使用它的 著名 参数顺序语法。

参数顺序语法特别适用于将消息文本翻译成语言(如英语到日语),但我不需要 .Net 兼容性。

如果您必须将 .Net 的代码移植到 Delphi win32,或者您非常熟悉 .Net 的格式语法,如果存在这些库,这些库将很有用,但在我的情况下不是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多