2013-03-19 1 views
1

У меня есть этот файл http://pastebin.com/pH4Pk0sf без расширения, и это может быть COBOL, потому что на компьютере, на котором он размещен, используется BASIC, COBOL и что-то под названием «KEY BASIC» ... Я не понимаю этот код .. Я делаю с некоторыми строками, но не все ...Кодирование help (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», конечно, это файл, у меня есть «ТАБПРЕЗУ», но что такое «3/1»? не является файловой системой, потому что она не существует или может быть какой-то базой данных?

Программа мы используем это SovereignX под UNIX, он имеет возможность UNIXCOPY, которая позволяет пользователю копировать AFile из SovereignX в UNIX Filesystem, я не нашел никакой информации о SovereignX ...

It было бы крайне полезно найти способ увидеть исходный код всего и воссоздать его, мы делаем INPUT под командой BE (Batch Entry). Я пытаюсь загрузить всю ОС на USB-накопитель по FTP (я не знаю, почему машина не загружает UBUNTU LIVE USB, материнская плата позволяет вам загружать ее, но ничего не происходит, поэтому единственный вариант - загрузить через FTP и попробовать чтобы запустить его под какой-то виртуальной машиной ...

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

Нортгейт Приобретенный микроданный (создатель SovereignX), затем Макдонелл Дуглас купил Нортгейт ... Это исследование убивает меня ... Кажется, что все находится под некоторыми вид Databse, написанный в DATA/BASIC и PROC

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

ОБНОВЛЕНИЕ 2 ЭТО КЛЮЧЕВОЙ ЯЗЫК ... Но это немного беспорядочно, если я открываю файлы с NP ++, мне нужно экспортировать из SovereignX, тогда его можно прочитать ... Но делать это с ~ 100 файлами является экстремальным ... Кто-то знает IDE KeyBasic? MHH благодаря

UPDATE 3 .dat, и .IDX файлы этой программы, защищен пароль, из консоли оно не спрашивать меня пароль, но это делает, если я использую DBISAM просмотр, и никто не знает пароль .. Damn

+2

Определенно не Cobol. –

ответ

5

Определенно BASIC диалект. Довольно старый код, так что нет ничего слишком непонятного. ЕСЛИ ... ТОГДА ЕСЛИ ... ТОГДА.

Код между строками, пронумерованными 5 и 90 (линии с 10 по 38 в вашем pastebin) - это ваш основной цикл обработки. GOSUBs в строках 5000 и 9000 являются подпрограммами, вызываемыми из основного контура.

Несколько более тайные черты, которые я вижу здесь, независимо от диалекта:

  • OCONV является функцией форматирования; подумайте об этом, как sprintf()
  • Операторы PRINT, кажется, вставляют пробел перед каждой непустой линией; Старые линейные принтеры часто интерпретируют первый символ строки печати в качестве управляющего символа для перехода на новую страницу, например. пространство означает «просто напечатать строку»

Update

Что-то я пропустил в первом чтении: синтаксис скобка выполнения операции подстроки. Так, например, код в строке 12 вашей Pastebin,

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

сравнивает символы 26 и 27 буфера (связанного с READ на линии 5) в строку '20'. В следующей строке, R[26,2]#30, # является не равным оператору.

Update

Я с вами, а не все строки форматирования описаны в док. Но я подозреваю, что 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 

Update

Синтаксис OPEN оператора в вашем Pastebin точно не соответствует документации для Caché MultiValue Basic, ни для UniBasic.Тем не менее, я могу предположить, что часть строки '1/1/FSNC0128S' представляет номер канал 1, и это тот же самый номер канала, который появляется в

5 READ R FROM 1 ELSE GOTO 90 

Думай номер канал, как дескриптор в Perl или дескриптор C файл.

Я хотел бы работать в предположении, что в строке другой 1 является своего рода модификатора доступа (хотя FOR RANDOM IO, казалось бы, противоречит), и просто сосредоточиться на поиске файла FSNC0128S.

+0

Основная проблема - это файл, который он открывает, мне нужно «декодировать» формат, чтобы я мог создать новую программу, которая выводит точный строковый формат (я уже делал это с другим приложением на том же компьютере), но этот более сложный, чем другой ... Спасибо за ваш ответ (все вы), это дает мне хорошие подсказки, чтобы следовать ... О персонажах, которые я видел в другом приложении, они использовали такие вещи, как SOH (\ x1 ascii) и прочее ... Но все равно немного потеряно. Спасибо еще раз. –

+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' –

+0

Я обновил свой ответ, если бы вы могли прочитать его и прокомментировать ... Спасибо! –

0

Это определенно какой-то диалект Бейсика. Несколько лет назад Data General имела базовую версию, которая была выдающейся в то время для серьезных многопользовательских бизнес-приложений. В Википедии есть статья, в которой упоминается этот диалект и некоторые подобные конкуренты.

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

Если код очень старый, вы проверили возможность, что это CBASIC?CBASIC был популярным способом разработки бизнес-приложений на ранних микрокомпьютерах.

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

2

Я могу сказать вам, что это было изначально, потому что я реализовал KEYBASIC еще в 1976/77 году. Я работал в CMC по системе Sovereign и реализовал свою систему ввода данных. У компании уже был довольно стандартный базовый интерпретатор и система времени выполнения, которая работала на системе Sovereign. Я сначала изменил это, чтобы получить доступ во времени, потому что несколько пользователей ввода данных использовали один процессор Sovereign, а во-вторых, чтобы добавить некоторые дополнительные функции, ориентированные на запись данных, причем все они были префиксами «K». Измененный язык затем назывался «KEYBASIC».

 Смежные вопросы

  • Нет связанных вопросов^_^