LINUX.ORG.RU

[ruby] Вывод

 


0

1

Вот есть скрипты где допустим выводятся проценты или допустим (как в portage «крутится» \/-| символы ) Как такое вообще сделать? Тоесть, как-то так: напечатать символ, потом его удалить, потом на его месте напечатать другой. А как такое сделать?

while true do
      print "0"
      STDOUT.flush
      print "\b"
      STDOUT.flush
      Kernel.sleep(1)
      print "-"
      STDOUT.flush
      print "\b"
      STDOUT.flush
      Kernel.sleep(1)
end


Простейший пример. STDOUT.flush нужно т.к. работает буферизация. Скорее всего, это можно настроить чтоб не вызывать каждый раз. Это не самый лучший вариант, но ssh постоянно рвется и терпение мое кончилось. Скорее всего, это тоже будет работать:

while true do
      print "0"
      STDOUT.flush
      print "\b"
      Kernel.sleep(1)
      print "-"
      STDOUT.flush
      print "\b"
      Kernel.sleep(1)
end

age
()

man console_codes:

BS (0x08, ^H) backspaces one column (but not past the beginning of the line);

Осталось ответить на вопрос, как вывести на ruby символ по его коду, но это Вы, надеюсь, сами сможете.

AITap ★★★★★
()

Спасибо, все работает!

babusha
() автор топика

не знаю как в руби но на питоне примерно так

s = "something%d"%x
sys.stdout.write(s+"\b"*len(s))
sys.stdout.flush()

и так в каждой итерации

olegsov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.