1

我正在使用 BASIC 编程语言工作。我在这里有一个示例字符串:

埃里克*01*73839

通过使用 field 函数,我可以像这样抓取 Eric 或 01:

ERIC = FIELD(STRING,"*",1)
01 = FIELD(STRING,"*",2)

但是,如果我想获取“73839”部分,该怎么做?我发现很难在谷歌上找到资源,因为它太旧了。

**不, FIELD(STRING,"*",3)不起作用。

4

2 回答 2

2

您总是可以做一些将纯字符串转换为动态字符串并提取第三个字段的变体。例如:

CONVERT "*" TO @FM IN STRING
FIELD3 = STRING<3>

具体情况取决于您使用的多值 BASIC 的风格。它可能必须更像:

EQU FM TO CHAR(253)    ;* Likely somewhere near the top, it will be used a lot
...
STRING = CHANGE(STRING,"*",FM)
FIELD3 = STRING<3>

如果它需要更加动态(可能有三个以上的字段并且您总是需要最后一个),则需要使用 DCOUNT(或 COUNT+1)来查找最后一个字段。

于 2019-12-04T06:21:35.837 回答
1

您的代码或数据有问题(第二个 * 可能是 unicode 相似的 [ https://www.htmlsymbols.xyz/star-symbols/asterisk]?)。或者 STRING 可能是您的 PICK Basic 风格的保留字?

STRING='Eric*01*73839'
CRT '1=':FIELD(STRING,'*',1)
CRT '2=':FIELD(STRING,'*',2)
CRT '3=':FIELD(STRING,'*',3)

结果对我来说:

1=Eric
2=01
3=73839
于 2020-01-28T22:07:21.983 回答