Как текстовые редакторы оболочки работают?

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

create procedure `speditalltables`()
begin
    declare _strsql varchar(512);
    declare _table varchar(128);
    declare done int default false;
    declare res integer default 0;

    declare _cursor cursor for select `table_name` as 'name' 
            from `information_schema`.`tables` 
            where `table_type`='base table' and `table_schema`=database();

    declare continue handler for not found set done=true;



    open _cursor;

        repeat

        fetch _cursor into _table;

        if not done then


            /* different column names ~ edit as appropriate */
            set @strsql=concat("update `",database(),"`.`",_table,"` 
                set 
                `filepath`=replace( `filepath`, '/uploads/', '/files1/' ),
                `filepath2`=replace( `filepath`, '/uploads/', '/files1/' ),
                `filepath3`=replace( `filepath`, '/uploads/', '/files1/' ),
                `filepath4`=replace( `filepath`, '/uploads/', '/files1/' )");

            prepare stmt from @strsql;
            execute stmt;
            deallocate prepare stmt;


        end if;


        until done end repeat;

    close _cursor;

    select 'finished' as 'result';

    set done=null;
    set @res=null;
    set @_table=null;
end
7
задан user25870 7 October 2008 в 16:27
поделиться

8 ответов

При помощи библиотек, таких как следующие, которые, в свою очередь, используют последовательности символа ESC

NAME
       ncurses - CRT screen handling and optimization package

SYNOPSIS
       #include 

DESCRIPTION
       The  ncurses library routines give the user a terminal-independent 
method of updating character screens with reasonable optimization.  This 
implementation is ‘‘new curses’’ (ncurses) and is the approved replacement 
for 4.4BSD classic curses, which has been discontinued.

[...snip....]

       The ncurses package supports: overall screen, window and pad 
manipulation; output to windows and pads; reading terminal input; control 
over terminal and curses input and output  options;  environment query 
routines; color manipulation; use of soft label keys; terminfo capabilities; 
and access to low-level terminal-manipulation routines.

9
ответ дан 6 December 2019 в 06:38
поделиться

Короткий ответ: существуют библиотеки для него (как проклятия, сленг).

Более длинный ответ: выполнение вещей как переход вокруг с курсором или изменением цветов сделано путем печати последовательностей специального символа (названный escape-secquences, потому что они запускают с символа ESC).

5
ответ дан 6 December 2019 в 06:38
поделиться

Приобретение знаний о ncurses могло бы быть хорошей начальной точкой.

3
ответ дан 6 December 2019 в 06:38
поделиться

Вы также заметите это при вводе "редактирования" в консоли командной строки Windows. Эта "функция" не уникальна для подобных Unix систем, хотя понятия для управления консолью окон таким образом очень отличаются к в Unix.

3
ответ дан 6 December 2019 в 06:38
поделиться

В системах Unix консоль эмулирует древний последовательный терминал (обычно VT100). Можно распечатать специальные управляющие символы и escape-последовательности, чтобы переместить курсор, цвета изменения, и сделать другие специальные эффекты. Существуют библиотеки, чтобы помочь обработать детали; ncurses является самым популярным.

В Windows, [Консоль Win32 API] (http://msdn.microsoft.com/en-us/library/ms682073 (По сравнению с 85%29.aspx) обеспечивает схожую функциональность, но довольно другим способом.

2
ответ дан 6 December 2019 в 06:38
поделиться

Существует старый протокол, названный vt100 на основе терминала "VT100". Это использовало коды, начинающие с Escape управлять позицией курсора, цветом, очищая экран, и т.д.

Это также, как Вы получаете цветные подсказки.

Google VT100 или "терминальные управляющие коды"

править: Я Погуглил его для Вас: http://www.termsys.demon.co.uk/vtansi.htm

3
ответ дан 6 December 2019 в 06:38
поделиться

Больше конкретной командной строки Windows, приложение обычно вызывает функции DOS или BIOS, которые делают то же. Поддержка кода команды Sometimes ANSI доступна, иногда это не (в зависимости от точной версии ОС MS и настроено ли это для загрузки его).

0
ответ дан 6 December 2019 в 06:38
поделиться

Введите "c:\winnt\system32\edit" или "c:\windows\system32\edit" в командной строке, и Вам покажут текстовый редактор командной строки.

Люди главным образом правы относительно символа ESC, используемого для управления экраном команды, но некоторые более старые программы также пишут символы непосредственно в пространство памяти, используемое экраном Windows Command Line.

Для управления окном командной строки Вы раньше писали Ваши собственные формы работы с окнами, поле записи, меню, и т.д. Необходимо было бы также перенести все это в большой цикл для обработки событий.

2
ответ дан 6 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: