编译错误:UniData LSELECT

编译错误:UniData LSELECT,select,compiler-errors,basic,unidata,Select,Compiler Errors,Basic,Unidata,我在火箭软件网站上找到了这个程序,但是我在编译它时遇到了问题 有人成功过吗 以下是错误: :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,va

我在火箭软件网站上找到了这个程序,但是我在编译它时遇到了问题

有人成功过吗

以下是错误:

: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
:基本BS L选择
在“m”模式下编译Unibasic:BS/L选择。
主程序:在或之前出现语法错误
GETLIST SOURCE.LIST到9 ELSE
-----------------------^
应为:数组、变量
警告:在第132行附近的END后面有一些语句
错误:使用了以下标签,但尚未定义:
显示消息
结束
BUILD.LIST2
LOAD.TEMP.FILE
创建.TEMP.FILE文件
近243线
编译失败

TCL命令和基本程序有不同的风格。它允许您将代码从不同的遗留系统移植到Unidata,而无需完全重写。这段代码是为Unidata basic编写的。您可以通过执行以下操作在会话中临时切换到该状态:

:BASICTYPE "U"
或者在程序顶部添加一个编译器指令,告诉Unidata使用哪种基本子语法。它们都很接近,但差别很小

$BASICTYPE "U"

Pick样式是一种常见的默认样式,因为Unidata上运行的大部分代码都是从较旧的Pick或Pick兼容系统移植的。因此,许多应用程序在登录段中设置基本类型“P”和ECLTYPE“P”以实现兼容性。根据“帮助基本类型”,M选项适用于McDonnell Douglas或Reality flavors


ECLTYPE是另一个需要调整的常见对象—它控制某些命令参数的处理方式。最有用的是DELIM或XML,它们仅在ECLTYPE U中可用。诀窍在于小写命令名总是在ECLTYPE U中计算,因此您不必总是来回切换-如果您想要90年代的那些“现代”扩展,只需使用小写;-)

您是否尝试过从Rocket的网站实现LSELECT?我尝试将BASICTYPE切换到U,这很有效,但最终出现了其他编译错误。
:BASIC BS-LSELECT编译Unibasic:BS/LSELECT在模式“m”下。基本类型已更改,BS/LSELECT正在模式“u”下编译未定义的编译指令$OPTIONS靠近第194行主程序:$OPTIONS处或之前的语法错误-VAR.SELECT--------^应为:行尾、数组、标签、变量、动词、end、MAT、COM、ON、BREAK、PAGE、GOSUB
我没有基本类型“u”Philip,你能试着在TCL提示符下键入BASICTYPE“U”吗?如果我这样做,程序会为我编译。