Snusmumriken
Hello, World! 🎄
Я круче сделал 😁
Hello, World! 🎄
Hello, World! 🎄
Snusmumriken
Молодец, у линуксовой консоли просто так регулируется ширина символов?
Snusmumriken
А, тоже нормась
Snusmumriken
Ещё можно выставить цвет символов такой же как цвет фона
Hello, World! 🎄
А, тоже нормась
Вот так с 1 пробелом
Hello, World! 🎄
Ещё можно выставить цвет символов такой же как цвет фона
Я тоже так подумал, но решил просто пробел поставить, его всё равно не видно
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Инверсия
Hello, World! 🎄
Aqendo
Миленько
Igor
Может где-то добавили такой прикол, а потом передумали и следующим корректирующим откатили.
Igor
У меня с последними обновлениями система 21H2 (19044.1586)
Hello, World! 🎄
Snusmumriken
А winver что говорит?
1909, 19 год, ноль патчей реестра.
Igor
Ну да, скорее всего где-то по пути убрали этот прикол
Snusmumriken
Нет, не должны были, сейчас проверю на 21 патче
Hello, World! 🎄
@Snusmumriken :D
Snusmumriken
Да-да, а используя \27[J ты можешь очень быстро чистить экран и выводить анимацию.
Igor
Ха
Igor
Неужели чисто луёвый прикол?
Snusmumriken
Нет.
Igor
А как так?
Snusmumriken
Просто ты переключаешь весь вывод из луа в юникод.
Hello, World! 🎄
Неужели чисто луёвый прикол?
ansi последовательность
Igor
Просто ты переключаешь весь вывод из луа в юникод.
Ну так и в прошлый раз делал тоже самое
Snusmumriken
Пользуясь сишкой или питоном будет то же самое, если ты из них переключишь кодировку, прям изнутри проги, а не снаружи перед запуском по крайней мере.
Igor
ansi последовательность
Спасибо, Америку открыл. Но я про другое говорил.
Igor
Странно, конечно, ну да ладно
Snusmumriken
Но эта фича позволяет тебе сделать простенькую либу типа https://pastebin.com/cP5DF4AM, и использовать её на любой десятке и линексе.
Igor
Ну для меня как-то нативнее что ли выглядит вызов SetConsoleMode с установкой флага ENABLE_VIRTUAL_TERMINAL_PROCESSING, нежели вызов chcp. Последний вариант удобен разве что при отсутствии возможности подключения libffi.
Igor
\x1B[2J - очистка всего экрана
Igor
\x1B[J - очищает только после курсора то, что находится
Hello, World! 🎄
\x1B[2J - очистка всего экрана
Я и через system('clear') могу очистить. Но консоль будет моргать
Igor
а у тебя интерпретатор не прочитал видимо символ \27, либо обрезал его
Igor
потому что в конечном итоге консоль не обработала отправленную строку как управляющую последовательность
Igor
Snusmumriken
:\
Пардон, "\27[0;0H\27[J"
Hello, World! 🎄
Пардон, "\27[0;0H\27[J"
Тоже не работает
Snusmumriken
Хммммм
Hello, World! 🎄
Но если 27 на 033 заменить, то всё нормально
Snusmumriken
Ну тады заменяй ))
Hello, World! 🎄
Ну тады заменяй ))
Так заменил 👍
Hello, World! 🎄
Пардон, "\27[0;0H\27[J"
Будет ли экран моргать при таком обновлении?
Snusmumriken
Snusmumriken
Смотря сколько текста выводишь
Hello, World! 🎄
Вот, я как раз и спросил, т.к подумал может змейку в консоле написать
Aqendo
единственное что я понял - на винХП не работает :)
Igor
Моргать будет, если неумело пользоваться управляющими последовательностями.
Snusmumriken
единственное что я понял - на винХП не работает :)
На семёрке тоже не будет, увы, там точно надо врубать.
Aqendo
видимо "нововведение" пришло с какого-то билда вин10 и дальше уже в вин11 перешло
Igor
В теории можно вообще не чистить весь экран, один раз нарисовать поле и просто через ansi перемещать курсор и делать грязные делишки
Snusmumriken
Да, я почти так и делаю в своей змейке, только рисую стенки установкой курсора в точку и рисованием символа стены, например.
Igor
С 2000ой винды по 8ую его использовал
Snusmumriken
Ля, а я тут для народа делал вывод статистики серверов по вовчанскому. Последнее применение управляющих последовательностей в принципе.
Igor
У меня последнее применение ANSI примерно такое))
Hello, World! 🎄
@Snusmumriken :D
А у меня последнее вот)
Igor
Правда иногда как-то ну очень странно работает, ну ладно
Igor
Я чёт даже и не знаю, как с этим бороться. Потому что судя по всему проблема в сохранении позиции курсора.
Igor
Правда иногда как-то ну очень странно работает, ну ладно
Такой вывод получается если запускать сервер мой через батник, если напрямую exe файл, то всё отлично.
Hello, World! 🎄
Я чёт даже и не знаю, как с этим бороться. Потому что судя по всему проблема в сохранении позиции курсора.
Скорее всего ты отрисовал символы, а дальше переместил курсор и не стёр их
Igor
Это чисто технически невозможно
Igor
Сохранение позиции курсора происходит сразу же после принта строки логгером.
Igor
Ну и если строка повторяет предыдущую, то мы восстанавливаем сохранённую позицию курсора (до символов \r\n предыдущей строки) и добавляем количество повторений, после чего обратно возвращаем эти несчастные \r\n
Igor
Повторяюсь, проблема в факапе ansi за пределами моей программы, потому что в одном окружении работает, а в другом - нет.
Igor
Хотя есть предположение, что курсор желательно повторно сохранить после восстановления его позиции, но не думаю, что проблема в этом.
Rider
Rider
Rider