| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > а-ля command.com или shell в Linux |
| Автор: snsh 27.12.2006, 16:56 |
| Уважаемые форумчане! Подскажите, может кто сталкивался с проблемой. Стоит задача создания консольного приложения. При этом предполагается довольно большой объем вводимых с клавиатуры данных, которые между собой будут довольно сильно похожи. Напрашивается вопрос - как можно это реализовать? В shell'ах Linux'а или в ДОС-окне нажатие стрелки вверх вызывает последнюю команду, еще раз вверх - предпоследнюю команду и т.д. При этом эти команды после такого вызова на экран можно редактировать (именно это мне и нужно). Как помещать в некий стек (будь то в виде массива или файла) введенные команды, я понимаю. Как потом мне не просто выводить последнюю команду, а иметь возможность ее редактировать? Т.е., строка команды из некоего стека должна не просто выводиться на экран, а типа как эмулировать клавиатурный ввод. В командных оболочках это называется, по-моему, command history. |
| Автор: Любитель 27.12.2006, 17:57 |
| Надо с операционкой определиться. Кроссплатформенного решения по работе с консолью как ни странно нет (по крайней мере из известных). |
| Автор: snsh 27.12.2006, 18:15 |
| ОС - Windows XP |
| Автор: Любитель 27.12.2006, 18:38 |
| На вскидку не помню (могу дома с оффлайновой MSDN-кой найти). Как вариант - ReadConsoleInput и собственная колбэк-функция для клавиатуры. А также SetConsoleCursorPosition. Ну и, конечно, инклюда на wincon.h. В Viste вроде появились АПИ-функции для команд-хистори. Проверить сие негде (висты у меня нету). |
| Автор: snsh 27.12.2006, 19:05 |
| Понятно. Буду весьма признателен, если поможете мне и уточните. Спасибо. |
| Автор: Любитель 27.12.2006, 19:08 |
| Завтра, вероятно, принесу примерчик - устроит? |
| Автор: snsh 27.12.2006, 19:44 |
| ДА!!! |
| Автор: regis 29.12.2006, 13:12 |
| Есть еще такая библиотечка, как GNU readline. Вроде бы кроссплатформенная. |
| Автор: Rockie 29.12.2006, 20:33 |
| snsh, есть функции http://forum.vingrad.ru/topic-112983/hl/cursorposition/index.html, с ними и работай. Задача учебная? Потому как если нет - почему бы не заюзать возможности Win XP - по крайней мере уже есть ctrl+C, ctrl+V, shift+Home и так далее. |