gpt4 book ai didi

unix - 编码帮助 (KeyBasic)

转载 作者:行者123 更新时间:2023-12-05 08:44:08 25 4
gpt4 key购买 nike

我有这个文件 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 I不知道什么是“3/1/TABPRESU”当然它是一个文件,我有“TABPRESU”但什么是“3/1”?不是文件系统,因为它不存在,或者它可能是某种数据库?

我们使用的程序是 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它是 KEYBASIC LANGUAGE...但是如果我用 NP++ 打开文件有点乱,我需要从 SovereignX 导出然后它可以被读取...但是用 ~100 个文件这样做是极端的...有人知道KeyBasic 集成开发环境?嗯谢谢

更新 3该程序拥有的 .DAT 和 .IDX 文件受密码保护,从控制台它不会要求我输入密码,但如果我使用 DBISAM 查看器,它会要求我输入密码,但没有人知道密码......该死的

最佳答案

绝对是 BASIC 方言。相当古老的代码,所以没有什么太晦涩的了。 IF ... THEN 就是 IF ... THEN。

编号为 590 的行之间的代码(您的 pastebin 中的第 10 行到第 38 行)是您的主要处理循环。 GOSUBs 50009000 行是从主循环调用的子例程。

我在这里看到的一些更神秘的功能,与方言无关:

  • OCONV是一个格式化函数;把它想象成 sprintf()
  • PRINT 语句似乎在每个非空行之前插入一个空格;老式行式打印机通常将打印行的第一个字符解释为前进到新页面的控制字符,例如;空格表示“只打印行”

更新

我在第一次阅读时错过了一些东西:括号语法正在执行子字符串操作。因此,例如,您的 pastebin 第 12 行的代码,

IF R[26,2]='20' THEN GOSUB 9000;GOTO 5

正在将缓冲区的字符 26 和 27(与 5 行的 READ 关联)与字符串 '20' 进行比较。在下一行 R[26,2]#30 中,# 是一个不等于运算符。

更新

我同意你的看法,并非所有格式字符串都在文档中进行了解释。但我怀疑 Z9 的工作方式与它们在 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é MultiValue Basic 或 UniBasic 的文档不完全匹配。但是,我可以推测字符串 '1/1/FSNC0128S' 的一部分代表 channel 号 1,它与出现在

中的 channel 号相同
5    READ R FROM 1 ELSE GOTO 90

将 channel 号想象成 Perl 中的文件句柄或 C 文件描述符。

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

关于unix - 编码帮助 (KeyBasic),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com