在最后一个定界符之后获取字符串(BASIC)

时间:2019-12-03 19:36:28

标签: basic multivalue pick

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

  

Eric * 01 * 73839

通过使用字段功能,我可以像这样抓住Eric或01:

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

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

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

2 个答案:

答案 0 :(得分: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)来查找最后一个字段。

答案 1 :(得分:1)

您的代码或数据不正确(那第二秒*可能是看起来像[https://www.htmlsymbols.xyz/star-symbols/asterisk]的Unicode吗?)。还是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