Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Écrire un éditeur pour le terminal - partie 4

| Comments

Niveau : intermédiaire

Aujourd’hui on voit comment écrire un message centré horizontalement et verticalement, comment lire une chaîne de caractères, et comment être tranquille avec les caractères non ASCII.

Voici un programme qui montre tout ça:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
require 'curses'
include Curses

message = "Enter a string: "

begin
  init_screen
  setpos(lines / 2, (cols - message.size) / 2)
  addstr(message)
  str = getstr
  setpos(lines - 2, 0)
  addstr(sprintf("You entered: %s", str))
  getch
ensure
  close_screen
end

Quelques brèves explications maintenant:

Tout d’abord, on affiche un message centré ainsi:

1
2
  setpos(lines / 2, (cols - message.size) / 2)
  addstr(message)

Pour lire une chaîne de caractères, on utilise getstr:

1
  str = getstr

Puis on affiche ce qu’on vient de lire sur l’avant-dernière ligne du terminal:

1
2
  setpos(lines - 2, 0)
  addstr(sprintf("You entered: %s", str))

Le sprintf, qui vous rappelera des choses si vous avez fait du C, est ce que j’ai trouvé de mieux pour ne pas avoir de soucis avec les caractères non ASCII.

À demain.

Articles connexes

Commentaires