Halcon字符串格式化
在Halcon中$符号的核心作用是格式化Formatting它的功能与C语言中的printf非常相似。虽然$本身不直接执行“拼接”动作但它常与字符串连接符配合使用将格式化的数字嵌入到字符串中从而构建出最终的文件名或路径。 核心语法与格式说明符其基本语法是数值$格式字符串这个操作在底层对应tuple_string算子。格式字符串的完整结构为标志字段宽度精度转换字符。以下是Halcon中$常用的格式控制符整理自官方文档与开发者社区类别格式示例说明与效果代码示例结果整数对齐$6右对齐总宽度6位不足时左侧补空格超出则不影响。123$6→ 123$-6左对齐总宽度6位不足时右侧补空格。123$-6→123 整数补零$.6总宽度6位不足时左侧补零超出不影响。1$.6→000001$02常数的补零写法效果等同于$.2在时间、序号格式化中极为常用。9$02→09小数精度$.2保留2位小数并进行四舍五入。789.123$.2→789.12$.5保留5位小数如果原数小数位不足不会补零例如789.123会输出789.123。789.123$.5→789.123科学计数$.2e以科学计数法输出并指定小数位数不足时会补零。123.456$.2e→1.23e02进制转换$#x将十进制数转为十六进制带0x前缀字母小写。123$#x→0x7b$#o将十进制数转为八进制带0前缀。123$#o→0173文本对齐$10对字符串进行右对齐总宽度10位。Hugo$10→ Hugo$-10对字符串进行左对齐总宽度10位。Hugo$-10→Hugo 典型应用场景与配合“拼接”$最常见的用途就是与字符串连接符结合动态生成带有规律的文件名或路径。场景1读取图像序列这是最经典的应用。假设你的图像命名为Image_01.jpg,Image_02.jpg… 你可以用循环和$来构建路径。Path : lcd/Image_ for f : 1 to 3 by 1 * f$02d 将 1 格式化为 01, 2 格式化为 02... * 最终拼接出完整的文件路径如 lcd/Image_01 read_image (Image, Path f$02d) endfor说明f$02d和f$.2i效果相同d或i都表示十进制整数02或.2表示宽度为2且补零。场景2格式化时间显示将获取到的单数字小时、分钟、秒格式化为标准的“时:分:秒”格式。get_system_time (MSecond, Second, Minute, Hour, Day, YDay, Month, Year) * 将 9 格式化为 09, 5 格式化为 05 HourStr : Hour$02 MinuteStr : Minute$02 SecondStr : Second$02 * 拼接成最终的时间字符串 TimeString : HourStr : MinuteStr : SecondStr 总结在Halcon中实现“拼接格式化”功能的公式是$负责“塑形”控制数字的格式负责“组装”连接字符串。通过灵活组合各种格式符你可以精确控制数字的对齐、精度和进制从而构建出符合严格命名规则的字符串。