c #: преобразовать строку, предназначенную для использования оболочки Unix для командной строки Windows - PullRequest
1 голос
/ 29 октября 2009

Вот пример строки, которую я получил из потока сокетов.

\033[H\033[J\033[1;30HSUPERVISOR MAIN MENU\033[6;5H 0.  Exit         Exit\033[7;5H 1.  Help         Display help\033[8;5H 2.  Control      Calling lists and users\033[9;5H 3.  Campaign     Campaigns\033[10;5H 4.  Manage  

Если вы хотите увидеть вывод, который я ожидаю, откройте оболочку Unix / Linux, введите echo -e , за которым следует пробел, за которым следует указанная выше строка в одинарных кавычках, и нажмите клавишу Enter. Вывод выглядит примерно так:

                     SUPERVISOR MAIN MENU


 0.  Exit         Exit
 1.  Help         Display help
 2.  Control      Calling lists and users
 3.  Campaign     Campaigns
 4.  Manage

Я хочу тот же вывод, но он должен быть в памяти ... Мне нужно работать с ним позже ... любые идеи.

1 Ответ

1 голос
/ 29 октября 2009

Несколько часов назад я задал почти эквивалентный вопрос: Сервер с открытым исходным кодом C # VT100 . Вам нужна клиентская библиотека, которая понимает управляющие команды vt100.

Я некоторое время искал и до сих пор не нашел очень хороших библиотек vt100 C #. Я начал использовать пользовательский интерфейс, и, поскольку мне действительно нужно интерпретировать стрелки влево и вправо и возврат на одну позицию, это не заняло много времени.

К счастью, стандарт vt100 очень беспорядочный и не слишком сложный. Я не думаю, что вам понадобится очень много времени, чтобы создать некоторый код, чтобы понять команды escape в вашем примере. Эта ссылка имеет хороший краткий список escape-последовательностей VT100 (вам нужно немного прокрутить вниз). Еще один хороший сайт - vt100.net .

В вашем примере escape-последовательности находятся в восьмеричном виде. Ваша первая escape-последовательность:

\033[H

, что переводится в ASCII ниже и используется для установки позиции курсора.

ESC [ H

Второй -

\033[J

, что переводит в последовательность ASCII ниже и означает очистку линии до конца экрана.

ESC [ J 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...