我有这个文件http://pastebin.com/pH4Pk0sf没有扩展名,它可能是COBOL,因为它托管的计算机使用BASIC,COBOL和一些名为“KEY BASIC”的东西......我不明白这段代码......我做了一些但不是全部...
我想把它转换成C#,但我不知道如果有人可以告诉我它是哪种语言,也许我可以挖掘更多。
程序读取另一个文件http://pastebin.com/rdbdappQ并为打印机创建输出...我需要知道它是如何工作的,以便使Windows程序(通过C#)做同样的事情......
谢谢。
更新
感谢您的帮助,我正在尝试重新创建代码,我看到这样的事情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的创造者),然后麦当劳道格拉斯购买了北门......这项研究正在扼杀我......似乎一切都在某种数据库下,用DATA / BASIC和PROC编写http://timmcnulty.iofm.net/realityx.htm
更新2 它是基本语言...但是如果我用NP ++打开文件会有点乱,我需要从SovereignX导出然后它才能被读取......但用~100个文件这样做是极端的......有人知道一个KeyBasic IDE?嗯,谢谢
更新3 这个程序有.DAT和.IDX文件,受密码保护,从控制台它不会问我密码,但如果我使用DBISAM Viewer,没有人知道密码......该死的
答案 0 :(得分:5)
绝对是一种基本方言。相当古老的代码,所以没有什么太晦涩难懂。一个IF ...那么是一个IF ......然后。
编号为5
和90
的行之间的代码(pastebin中的第10行到第38行)是您的主要处理循环。行5000
和9000
的{{3}}是从主循环调用的子程序。
我在这里看到的几个更神秘的功能,无论方言如何:
<强>更新强>
我在第一次阅读时遗漏的东西:括号语法正在执行子字符串操作。因此,例如,您的pastebin第12行的代码
IF R[26,2]='20' THEN GOSUB 9000;GOTO 5
将缓冲区的字符26和27(与行READ
处的5
相关联)与字符串'20'
进行比较。在下一行R[26,2]#30
中,#
是一个不等于运算符。
<强>更新强>
我和你在一起,并不是所有的格式化字符串都在doc中解释。但我怀疑Z
,9
和,
的工作方式与他们在COBOL中的工作方式相同。
Z
:抑制前导零:如果相应的数字和左边的所有数字都为零,则打印空格,数字
否则,
:如果左侧有非空白/非零数字,请打印逗号,
否则9
:打印相应的数字,即使它为零格式字符串为MDZZ,ZZ9
:
0 prints as 0
12 prints as 12
123 prints as 123
1234 prints as 1,234
12345 prints as 12,345
<强>更新强>
您的pastebin中OPEN
语句的语法与CachéMultiValueBasic和UniBasic的文档不完全匹配。但是,我可以推测字符串'1/1/FSNC0128S'
的一部分代表频道号1,而这是
5 READ R FROM 1 ELSE GOTO 90
将通道号想象为Perl中的文件句柄或C文件描述符。
我会假设字符串中的另一个1
是某种访问修饰符(尽管FOR RANDOM IO
似乎是矛盾的),并且只关注定位文件{{1 }}
答案 1 :(得分:2)
Cache MultiValue Basic是我能找到的最佳选择。
答案 2 :(得分:2)
我可以告诉你它原来是什么,因为我在1976/77左右实现了KEYBASIC。我曾在CMC主管Sovereign系统工作,并实施了他们的数据录入系统。该公司已经有一个相当标准的基本解释器和运行时系统,它运行在Sovereign系统上。我首先对此进行了修改,以便分享时间,因为多个数据输入用户使用了一个Sovereign处理器,其次是添加了一些额外的数据输入功能,这些功能都以“K”为前缀。然后将修改后的语言称为“KEYBASIC”。
答案 3 :(得分:0)
这绝对是BASIC的一些方言。几年前,Data General有一个基本版本,在当时对于严肃的多用户业务应用程序而言非常突出。维基百科有一篇文章提到了这种方言和一些类似的竞争对手。
http://en.wikipedia.org/wiki/Data_General_Business_Basic
如果代码很旧,你有没有检查过CBASIC的可能性? CBASIC是在早期微型计算机上开发业务应用程序的一种流行方式。