我已经在火箭软件网站上找到了LSELECT程序,但是在编译时遇到了问题。
有人成功吗?
错误如下:
:BASIC BS LSELECT
Compiling Unibasic: BS/LSELECT in mode 'm'.
main program: syntax error at or before
<line 126> GETLIST SOURCE.LIST TO 9 ELSE
-----------------------^
Expecting: array,variable
Warning: there are some statements after END near line 132
error: the following labels are used but have not been defined:
SHOW.MESSAGE
FINISH.UP
BUILD.LIST2
LOAD.TEMP.FILE
CREATE.TEMP.FILE
near line 243
compilation failed
最佳答案
TCL命令和基本程序有不同的风格。它允许您将代码从不同的旧系统移植到Unidata,而不必进行完整的重写。该代码是为Unidata基本风格编写的。您可以在 session 中通过以下方式临时切换到该端口:
:BASICTYPE "U"
或在程序顶部添加一个编译器指令,该指令告诉Unidata使用哪个基本子语法。它们都很接近,只有很小的差异。
$BASICTYPE "U"
https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/unidata/previous%20versions/v7.2/unidata_unibasicapplicationsdevguide_v72.pdf
Pick样式是常见的默认设置,因为Unidata上运行的许多代码都是从较早的Pick或与Pick兼容的系统移植的。因此,许多应用程序在LOGIN段落中将BASICTYPE“P”和ECLTYPE“P”设置为兼容。根据“帮助基本类型”,M选项适用于麦当劳道格拉斯或Reality口味。
ECLTYPE是另一个需要调整的常见事物-它控制如何处理某些命令参数。最有用的是TO DELIM或TO XML,它们仅在ECLTYPE U中可用。诀窍在于,小写的命令名称始终在ECLTYPE U中进行求值,因此您不必总是来回切换-只需使用小写即可如果您想要90年代的那些“现代”扩展名;-)
关于select - 编译错误: UniData LSELECT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50802829/