Как определить ширину символа консоли из программы ruby? - PullRequest
2 голосов
/ 28 февраля 2010

Я хочу напечатать столбчатый вывод из программы ruby, но чтобы в полной мере использовать доступное пространство экрана, мне нужно определить ширину символа терминала, в котором выполняется программа. Как это сделать?

1 Ответ

0 голосов
/ 28 февраля 2010

Драгоценный камень HighLine использует эту функцию, чтобы найти размеры терминала:

  # A Windows savvy method to fetch the console columns, and rows.
  def terminal_size
    stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE)

    bufx, bufy, curx, cury, wattr, left, top, right, bottom, maxx, maxy =
    GetConsoleScreenBufferInfo(stdout_handle)
    return right - left + 1, bottom - top + 1
  end

Этот метод должен работать и в Windows, если вы используете Linux (или что-то подобное) только тогда, вы можете использовать stty size, чтобы легче находить размеры, используя что-то вроде:

def terminal_size
  `stty size`.split.map { |x| x.to_i }.reverse
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...