我一直在尝试实现一个BASIC语言解释器(在C/C++中),但我还没有找到任何解释语言结构解析过程的书或(全文)文章.有些命令相当复杂且难以解析,尤其是条件和循环,例如IF-THEN-ELSE和FOR-STEP-NEXT,因为它们可以将变量与常量,整个表达式和代码以及其他所有内容混合,例如:
10 IF X = Y + Z THEN GOTO 20 ELSE GOSUB P
20 FOR A = 10 TO B STEP -C : PRINT C$ : PRINT WHATEVER
30 NEXT A
Run Code Online (Sandbox Code Playgroud)
能够解析类似的东西并让它发挥作用似乎是一场噩梦.更糟糕的是,用BASIC编写的程序很容易变得混乱.这就是为什么我需要一些建议,阅读一些书或其他什么来让我明白这个主题.你能提出什么建议?
我有这个文件http://pastebin.com/pH4Pk0sf没有扩展名,它可能是COBOL,因为它托管的计算机使用BASIC,COBOL和一些名为"KEY BASIC"...我不明白这个代码..我用一些线但不是全部......
我想将其转换为C#,但我不知道如果有人能告诉我它是哪种语言,也许我可以挖掘更多.
该程序读取另一个文件http://pastebin.com/rdbdappQ并为打印机创建输出...我需要知道它是如何工作的,以便使Windows程序(通过C#)做同样的事情. .
谢谢.
UPDATE
感谢您的帮助,我正在尝试重新创建代码,我看到这样的事情OPEN '3/1/TABPRESU' FOR RANDOM IO ELSE DISPLAY 'NO ABRE TABPRESU';STOP我不知道什么是"3/1/TABPRESU"当然它是一个文件,我有"TABPRESU"但是什么是"3/1"?不是FileSystem,因为它不存在,或者它可能是某种DataBase?
我们正在使用的程序是SovereignX,在UNIX下,它有一个选项UNIXCOPY,允许用户将文件从SovereignX复制到UNIX文件系统,我还没有找到任何关于SovereignX的信息......
找到一种方法来查看所有内容的源代码并重新创建它是极其有用的,我们在一个名为BE(批量输入)的命令下进行INPUT .我试图通过FTP将整个操作系统下载到USB驱动器(我不知道为什么机器不能启动UBUNTU LIVE USB,主板允许你启动它,但是没有发生,所以唯一的选择是通过FTP下载并尝试在一些虚拟机下运行它...
http://en.wikipedia.org/wiki/Northgate_Information_Solutions
Northgate购买Microdata(SovereignX的创建者),然后Mcdonell Douglas购买了Northgate ......这项研究正在杀死我......似乎一切都在某种数据库下,用DATA/BASIC和PROC编写
http://timmcnulty.iofm.net/realityx.htm
更新2 它是基本语言...但是如果我用NP ++打开文件有点乱,我需要从SovereignX导出然后它可以被读取...但用~100个文件这样做是极端的...有人知道KeyBasic IDE?谢谢
更新3 此程序具有的.DAT和.IDX文件,受密码保护,从控制台它不会要求我输入密码,但是如果我使用DBISAM Viewer,并且没有人知道密码...该死的
我正在寻找一个支持QBASIC程序的现代IDE /编译器,它具有与QBASIC相同或几乎相似的语法.我想在语法,风格和流程方面尽可能接近Qbasic.没有像Visual Basic这样的基于窗口的/可视风格的语言.它只需要基于文本或至少专注于基于文本的编程.
我不是在寻找有关替代品的意见,比如Python或Ruby.我的目标是找到一种更新的Qbasic形式,或者与QBasic非常相似的现代形式.我知道QBASIC可以在新窗口中本地工作(没有全屏)和DOSBOX.但是我想要为现代操作系统编译的东西,并且在其中有某种语法突出显示.
谢谢
我在我的商品64基础项目中得到一个redim'd数组错误
然而,我不是在确定我的2D阵列的尺寸,也不会多次查看代码行!
错误在1140行
谁能帮我吗?
谢谢!
码:
10 print "start"
20 rem: go to line 1100 in order to fill board with "."s because this is
30 rem: the board's initialization
40 gosub 1100
50 rem: looping from i to x allows for horizontal aspect of board to be printed
60 rem: x represents the width dimension of board, in this case, 8
70 for i = 1 to x
80 rem: looping from j to x allows for vertical aspect …Run Code Online (Sandbox Code Playgroud) 我需要调用一个函数并返回按钮的文本,虽然该按钮是以编程方式添加的.例如
AddHandler button.Click, AddressOf function(value)
Run Code Online (Sandbox Code Playgroud)
由于以下原因,认为这是不可能的:
错误1'AddressOf'操作数必须是方法的名称(没有括号).
提前致谢!
我想在 Visual Basic 中的特定位置获得一个可用的字符,例如字符串是“APPLE”。
我想获取字符串中的第三个字符,即“P”。
我正在阅读有关数组的 OpenOffice文档,它似乎Calc能够像Excel.
为了测试这一点,我创建了一个应该返回数组的简单函数{1, 2, 3}:
Function Test()
Dim Test(3) As Variant
Test(1) = 1
Test(2) = 2
Test(3) = 3
End Function
Run Code Online (Sandbox Code Playgroud)
当我填充一个单元格=Test()并按下时,Ctrl+Shift+Enter我只会得到一个单元格3。1和在哪里2?我究竟做错了什么?
我在跑OpenOffice 4.1.1。
我刚刚找到了我的旧Commodore 64计算机,将它连接起来,并决定再次尝试学习Basic.我刚刚完成了第3章,其中演示了一个简单的FOR循环:
10 FOR NB = 1 TO 10 STEP 1
20 PRINT NB,
30 NEXT NB
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,这会产生以下结果:
1 2 3 4
5 6 7 8
9 10
Run Code Online (Sandbox Code Playgroud)
当步骤设置为1.0时,上述结果相同.除0.5之外的其他数字会导致问题:
如果我将步长增加到除了 .5(或1)以外的任何值,我会得到奇怪的浮点,显然出现在浮点数设置越低的前面.对于第一次测试,我将NB更改为1 TO 40.
FOR NB = 1 TO 40 STEP .6:正常结果为1-31,然后为31.6000001.为了看看我是否会得到更奇怪的结果,我将NB增加到100,并且从42s再次看到奇怪的数字:41.2,41,8,42.4,42.9999999,43.5999999等.FOR NB = 1 TO 40 STEP .4:正常结果为1-7.4,然后是7,8000001,然后是正常结果8.2-22.6,然后是22.9999999,23.3999999等.FOR NB = 1 TO 40 STEP .2:正常结果为1-6.2,然后是6.3999999,以.2为增量,直至8.5999999,然后从8.7999998更改为9.9999998,然后是10.2的正常结果.FOR NB = 1 TO 40 STEP .1:正常结果为1-3.6,然后是3.6999999等.FOR NB = 1 TO …出于调试原因,我希望在我的VBA代码中包含行号.这将使我知道发生特定错误的位置.
是否有自动功能(例如设置中的选项)?或者我需要编写自己的宏?
如果我需要编写自己的宏来完成这项任务,我该如何做这样的事情呢?