2013-03-19 65 views
1

我有這個文件http://pastebin.com/pH4Pk0sf沒有擴展名,它可能是COBOL,因爲它託管的計算機使用BASIC,COBOL和一些叫做「KEY BASIC」的東西......我不明白這個代碼。我做了一些線,但並不是所有的...編碼幫助(KeyBasic)

我想將其轉換爲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」是什麼?是不是一個文件系統,因爲它不存在,或者它是某種數據庫?

我們正在使用的程序是SovereignX,UNIX下,它有一個選項UNIXCOPY它允許用戶從SovereignX到UNIX文件系統複製å文件,我還沒有發現有關SovereignX任何信息...

它是的極端有助於找到一種方法,看到的一切的源代碼,並重新創建它,我們做一個指揮下,輸入的被叫BE(批號輸入)。我試圖通過FTP將整個操作系統下載到USB驅動器(我不知道爲什麼機器不會啓動UBUNTU LIVE USB,主板允許你啓動它,但沒有發生,所以唯一的選擇是通過FTP下載並嘗試運行它在某些虛擬機...

http://en.wikipedia.org/wiki/Northgate_Information_Solutions

北門購買的微觀數據(SovereignX的創造者),然後麥克唐納道格拉斯購買北門...這項研究是我的命......似乎一切都在一些那種DATABSE的,寫在DATA/BASIC和PROC

http://timmcnulty.iofm.net/realityx.htm

UPDATE 2 它是基礎語言...但是如果我用NP ++打開文件,我需要從SovereignX導出然後才能讀取它,這有點麻煩......但是用〜100個文件做到這一點是極端的...有人知道一個KeyBasic IDE? MHH感謝

更新3 的.dat和.IDX文件這種方案有可能,有密碼保護,從控制檯它不問我的密碼,但它如果我使用DBISAM瀏覽器,沒有人知道密碼.. 。該死的

+2

絕對不是Cobol。 – 2013-03-19 13:19:04

回答

5

絕對是一個BASIC方言。相當古老的代碼,所以沒有什麼太模糊。 IF ...那麼是IF ... THEN。

行號爲590(pastebin中的第10行至第38行)之間的代碼是您的主要處理循環。 GOSUBs在線路50009000是從主循環調用的子例程。

一對夫婦不論方言的更神祕的功能,我在這裏看到,:

  • OCONV是格式化函數;想象它像sprintf()
  • PRINT語句似乎在每個非空行之前插入一個空格;舊式的行式打印機經常將打印行的第一個字符解釋爲控制字符以進入新頁面,例如:一個空格的意思是「只打印線」

更新

東西我錯過了一讀:括號語法正在執行字符串操作。所以,舉例來說,在你的引擎收錄的12行的代碼,

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

在緩衝(與READ在行5相關)的26和27比較字符的字符串'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 

更新

在你的引擎收錄不緩存多值基本也不需要UniBasic文檔完全匹配OPEN語句的語法。然而,我可以推測字符串'1/1/FSNC0128S'的那部分表示信道號1,並且它出現在

5 READ R FROM 1 ELSE GOTO 90 

認爲像Perl中的文件句柄或C文件描述符的信道號的這同一信道編號。

我會假設字符串中的其他1是某種訪問修飾符(儘管FOR RANDOM IO看起來矛盾),並且只專注於定位文件FSNC0128S

+0

主要的問題是它打開的文件,我需要「解碼」格式,所以我可以創建一個新的程序,輸出確切的字符串格式(我已經在同一臺機器上完成與其他應用程序),但這是一個比其他應用程序更復雜...謝謝你的回答(你們所有人)它給了我很好的線索... 關於字符,我在其他應用程序中看到過,他們使用的東西像SOH \ x1 ascii)和東西...但仍然有點失落。再次感謝你。 – 2013-03-19 14:22:49

+0

正如我在OCONV上看到的,很簡單,但'MDZZ,ZZ9'呢?文檔說它是Masked Decimal,它應該是'MD0',像這樣'PRINT OCONV(「123.57」,「MD0」); !返回124 PRINT OCONV(「123.57」,「MD1」); !退貨12.4 PRINT OCONV(「123.57」,「MD2」); !退貨1.24 PRINT OCONV(「123.57」,「MD3」); !返回0.124 PRINT OCONV(「123.57」,「MD4」); !返回0.0124' – 2013-03-19 15:41:23

+0

我已經更新了我的答案,如果您可以請閱讀並評論...謝謝! – 2013-03-21 10:16:03

2

我可以告訴你它原來是什麼,因爲我在1976/77左右實施了KEYBASIC。我在Sovereign系統的CMC工作並實施了他們的數據輸入系統。該公司已經有一個相當標準的基本解釋器和運行時系統,它運行在Sovereign系統上。我首先對此進行了修改,以便分時分配,因爲多個數據輸入用戶使用一個Sovereign處理器,其次添加一些額外的數據輸入導向功能,這些功能都以「K」爲前綴。修改後的語言被稱爲「KEYBASIC」。