gpt4 book ai didi

string - 如何根据正在进行的特定标准修剪字符串 openge 4gl?

转载 作者:行者123 更新时间:2023-12-01 13:45:25 26 4
gpt4 key购买 nike

ABC+123:xy+123++23'EFG+123:xy+123++23'GHI+123:xy+123++23+mki+123'LMV++123:xy'

我有上面的字符串。 Apostrophe(') 充当表示段结束的终止符。因此 ABC+123:xy+123++23 是一个段,它的起始标记是三个字符 ABC,这是唯一的。现在我需要根据这些开始标记修剪此字符串,例如我需要仅以 ABC 和 LMV 开头的段。结果字符串应该是 ABC+123:xy+123++23'LMV++123:xy'

最佳答案

基于这个问题和您使用 EDIFACT 的其他问题。

EDIFACT 由单引号 '(或撇号,如果您愿意的话)分隔。

ENTRYNUM-ENTRIES 是你的 friend 。我建议将您的数据移动到比字符串更有用的格式 - 更准确地说是临时表。然后你可以用临时表做任何你想做的事。首先“逐行”或“逐项”处理数据,然后继续处理数据。

DEFINE VARIABLE cString AS CHARACTER   NO-UNDO.
DEFINE VARIABLE iEntry AS INTEGER NO-UNDO.

DEFINE TEMP-TABLE ttEdifact NO-UNDO
FIELD lineno AS INTEGER
FIELD linedata AS CHARACTER FORMAT "x(60)".

/* The string in your example ends with a delimiter (') thus your temp-table will have one empty record in the end - it could be trimmed away */
cString = "ABC+123:xy+123++23'EFG+123:xy+123++23'GHI+123:xy+123++23+mki+123'LMV++123:xy'".


DO iEntry = 1 TO NUM-ENTRIES(cString, "'").
CREATE ttEdiFact.
ASSIGN
ttEdifact.lineno = iEntry
ttEdifact.lineData = ENTRY(iEntry, cString, "'").
END.

/* Now it's up to you to do something */
FOR EACH ttEdifact WHERE ttEdifact.lineData BEGINS "ABC":
DISP ttEdiFact.
END.

关于string - 如何根据正在进行的特定标准修剪字符串 openge 4gl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com