Может ли Python взаимодействовать с Informix 4GL Forms?

Я разработчик Informix 4GL. Из-за ремонтопригодности мне было поручено написать оболочку для автоматизации некоторых задач в приложении командной строки на основе форм 4GL.

Кто-нибудь знает, как это можно сделать на питоне? (Я возьму и другие языки, но предпочитаю Python).

Моя идея заключалась в том, чтобы использовать «клавиатуру» для имитации нажатия клавиш... (уродливо, я знаю).

Проблема в том, что, как я и предлагал, переписать все приложение на питоне или другом языке не согласуется с моим боссом. (Приложению около 30 лет, так же как и dbs... это грязно)

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
7
316
1

Ответы 1

20 лет назад у меня были настроены cron-jobs как

    fglgo program-name < keystrokes.txt

где keystrokes.txt, как следует из названия, были просто нажатиями клавиш, которые необходимо было ввести для запуска программы вручную. Обычно это использовалось для создания отчетов или запуска пакетных процессов посреди ночи.

Быстрый текст с Four Js Genero предполагает, что тот же принцип все еще работает. Моя маленькая тестовая программа была

    #! keystroketest.4gl
    MAIN
    DEFINE where_clause CHAR(100)
        OPEN FORM f FROM "keystroketest"
        DISPLAY FORM f
        MENU ""
            COMMAND "Query"
                CONSTRUCT BY NAME where_clause ON field1, field2, field3
                DISPLAY where_clause
                EXIT MENU
        END MENU
    END MAIN

    #! keystroketest.per
    SCREEN 
    {
    Field 1  [f01      ]
    Field 2  [f02      ]
    Field 3  [f03      ]
    }
    END
    ATTRIBUTES
    f01 = formonly.field1;
    f02 = formonly.field2;       
    f03 = formonly.field3;


    od -x keystroketest.txt
    0000000      3151    3030    0d1b    000a                                
    0000007

    fglrun keystroketest < keystroketest.txt
    field1='100'   

Таким образом, keystroketest.txt отправляет Q (для выбора запроса), 100 (для ввода некоторых данных в поле), ASCII (27), т.е. Escape Хитрость заключается в том, чтобы ввести ASCII(27) в файл .txt.

С FourJs Genero вы все еще можете делать то же самое с вашей программой Informix-4gl, если вы не добавили какие-либо виджеты с графическим интерфейсом. Если вы добавили виджеты с графическим интерфейсом, вы также можете использовать наш инструмент автоматического тестирования (Genero Ghost Client) для выполнения программы 4gl с использованием тестового сценария для ее автоматизации. Поэтому, если вы не хотите переписывать эти программы, но хотите скомпилировать и запустить их на современном сервере и т. д., это может быть вариантом.

Другие вопросы по теме