编码帮助(KeyBasic)

Rob*_*ter 1 unix basic translate

我有这个文件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,并且没有人知道密码...该死的

Dav*_*ine 5

绝对是一种基本方言.相当古老的代码,所以没有什么太晦涩难懂.一个IF ...那么是一个IF ......然后.

编号的线之间的代码590(在引擎收录线10至38)是你的主处理循环.该GOSUBs在线条50009000是从子程序主循环调用.

不管方言如何,我在这里看到的几个更神秘的功能:

  • OCONV是一种格式化功能; 把它想象成sprintf()
  • PRINT语句似乎是在每个非空行之前插入一个空格; 旧式行式打印机通常将打印行的第一个字符解释为控制字符以前进到新页面,例如; 空间意味着"只打印线"

更新

我在第一次阅读时遗漏的东西:括号语法正在执行子串操作.那么,例如,你的pastebin第12行的代码,

IF R[26,2]='20' THEN GOSUB 9000;GOTO 5
Run Code Online (Sandbox Code Playgroud)

在比较字符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
Run Code Online (Sandbox Code Playgroud)

更新

OPEN您的pastebin中语句的语法与CachéMultiValueBasic和UniBasic的文档不完全匹配.但是,我可以猜测,字符串的一部分'1/1/FSNC0128S'代表了频道号1,而且它出现在同一个频道号中

5    READ R FROM 1 ELSE GOTO 90
Run Code Online (Sandbox Code Playgroud)

可以考虑像Perl中的文件句柄或C文件描述符中的通道号.

我会假设1字符串中的另一个是某种访问修饰符(尽管FOR RANDOM IO看起来似乎是矛盾的),并且只关注定位文件FSNC0128S.