使用DISPLAY语句时是否可通过DELIMITER语句实现字段分隔?
问题
我需要对三个字段执行FOR EACH操作,字段分别为slmast.name、slmast.acode、slmast.address。通常这些字段会无分隔符整齐显示,请问是否可以使用DELIMITER语句为它们添加逗号、引号等分隔符?示例代码如下:
FOR EACH slmast. DISPLAY (DELIMITER) "," slmast.name slmast.acode slmast.address
回答
完全可以用DELIMITER语句为字段添加分隔符,不过你提供的示例语法位置有误,以下是正确的用法和扩展场景:
基础逗号分隔
DELIMITER是Progress 4GL中DISPLAY、EXPORT等语句的可选参数,必须放在字段列表之后,用于指定字段间的分隔字符:
FOR EACH slmast: DISPLAY slmast.name slmast.acode slmast.address DELIMITER ",". END.
执行后会输出类似:John Doe,AC123,123 Main St的格式化内容。
带引号包裹的分隔格式
如果需要给每个字段添加引号(比如符合标准CSV格式),可以搭配QUOTE参数指定包裹字符:
FOR EACH slmast: DISPLAY slmast.name slmast.acode slmast.address DELIMITER "," QUOTE '"'. END.
执行后输出:"John Doe","AC123","123 Main St"。
补充说明
- 若需要更灵活的格式(比如不同字段用不同分隔符),可以用字符串拼接方式实现,例如:
STRING(slmast.name) + "|" + STRING(slmast.acode) + "," + STRING(slmast.address),但DELIMITER是批量处理字段分隔的更简洁方案。 DELIMITER和QUOTE参数同样适用于EXPORT语句,方便导出格式化的文本文件。
内容的提问来源于stack exchange,提问作者OrbitalChairLeg
相关产品推荐
相关产品推荐

