IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Récupérer une séquence d'échappement d'un terminal


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 227
    Par défaut Récupérer une séquence d'échappement d'un terminal
    Bonjour,

    Je suis en train de développer un programme et je dois récupérer les séquence d'échappement à chaque fois que je lance mon programme pour qu'il soit compatible avec tout les term (xterm, etc.)
    J'arrive à les visualiser dans infocmp mais comment je peux les récupérer ?
    Je souhaite récupérer seulement les flèches (droite , gauche , haut , bas).

    Où doit-on aller chercher ces données ?
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Bonjour,

    Si tu veux utiliser terminfo, il te faudra t'appuyer sur les bibliothèques de ncurses pour en exploiter les informations. Ce sont elles qu'il faut explorer. Ensuite, chaque action est désigné par un nom en toutes lettres tel que « cursor_up » et un mnémonique abrégé qui lui est associé, tel que « cuu » ou « cuu1 ». C'est de cette façon que tu pourras retrouver les séquences associées à chaque action.

    Toutefois, si tu fais la liste de tous les terminaux que connaît ta machine, par exemple avec ceci :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ toe /usr/share/terminfo/ | cut -f1 | while read i ; do echo $i ; infocmp $i | grep -o 'cuu[0-9]\+=[^ ,]*' ; done

    … tu t'apercevras qu'à l'exception du VT-52, tous les terminaux reconnaissent l'ECMA-48 (les « codes ANSI » ou « DEC »). En ce qui concerne les touches du curseur, elles sont matérialisées par une séquence CSI (« ESC [ ») suivie d'une lettre de A à D :

    Haut = Esc [ A
    Bas = Esc [ B
    Droite = Esc [ C
    Gauche = Esc [ D

    Il faudrait que tu utilises, par exemple, un Minitel en mode Vidéotex ordinaire (40 colonnes) pour trouver autre chose que ce standard. Même les Minitel bistandards 1B et 2, quand ils travaillaient en mode « téléinformatique » 80 colonnes, se comportaient pour ainsi dire comme un VT-100.

Discussions similaires

  1. [AC-2010] Récupérer une Séquence Oracle en VBA sous Access 2010
    Par stef75 dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/02/2013, 10h56
  2. récupérer une séquence protéique par l' access number avec python
    Par Le vagabond dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 01/06/2010, 12h26
  3. Récupérer une séquence à partir de ses bornes
    Par picopom dans le forum Bioinformatique
    Réponses: 11
    Dernier message: 08/07/2009, 15h51
  4. Réponses: 12
    Dernier message: 04/02/2009, 12h44
  5. récupérer les séquences d'une base oracle
    Par gloglo dans le forum Oracle
    Réponses: 5
    Dernier message: 11/10/2006, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo