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

Télécharger C Discussion :

[VT100] Positionnement curseur et code ANSI [Sources]


Sujet :

Télécharger C

  1. #1
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut [VT100] Positionnement curseur et code ANSI
    Bonjour, Je vous propose un nouvel élément à utiliser : [VT100] Positionnement curseur et code ANSI



    [VT100] Positionnement curseur et code ANSI



    Qu'en pensez-vous ?
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  2. #2
    Membre éclairé
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Points : 742
    Points
    742
    Par défaut
    Bonjour,

    Voici une version avec quelques nouvelles séquences (j'y ai ajouté les quelques touches aussi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    /*!
     * \defgroup grpVT100 VT100
     * @{
     */
    // VT100 : ANSI escape code
    #define CSI             "\x1B["             /*!< Séquence escape ANSI */
    #if defined(_MSDOS) || defined(_WIN32) || defined(__CYGWIN32__) || defined(__CYGWIN__)
        #define CRLF        "\n\r"              /*!< Retour à la ligne (WINDOWS) */
    #else
        #define CRLF        "\n"                /*!< Retour à la ligne (LINUX) */
    #endif
     
    /*!
     * \defgroup actecrVT100 Actions sur l'écran d'un terminal
     * @{
     */
    // VT100 : Actions sur l'écran d'un terminal
    #define CLEAREOL        CSI "K"             /*!< Clear End Of Line */
    #define CLEARLCR        CSI "0K"            /*!< Clear Line Cursor Right */
    #define CLEARLCL        CSI "1K"            /*!< Clear Line Cursor Left */
    #define CLEARELN        CSI "2K"            /*!< Clear Entire LiNe */
    #define CLEAREOS        CSI "J"             /*!< Clear End Of Screen */
    #define CLEARCDW        CSI "0J"            /*!< Clear Curseur DoWn */
    #define CLEARCUP        CSI "1J"            /*!< Clear Curseur UP */
    #define CLEARSCR        CSI "2J" CSI ";H"   /*!< Clear SCReen */
    /*!
     * @}
     */
     
    /*!
     * \defgroup actcurVT100 Actions sur le curseur
     * @{
     */
    // VT100 : Actions sur le curseur
    #define HIDECURSOR      CSI "?25l"          /*!< Fait disparaitre le curseur */
    #define SHOWCURSOR      CSI "?25h"          /*!< Affiche le curseur à l'écran */
    #define GOTOYX          CSI "%.2d;%.2dH"    /*!< Positionne le curseur en (y,x) */
    #define CURSORFORWARD   CSI "%dC"           /*!< Avance le curseur de %d caractères */
    #define CURSORBACKWARD  CSI "%dD"           /*!< Recule le curseur de %d caractères */
    #define SAVCURSORPOS    CSI "s"             /*!< Sauve la position du curseur */
    #define RESCURSORPOS    CSI "u"             /*!< Restore la position du curseur */
    #define INSERTMOD       CSI "4h"            /*!< Mode insertion */
    #define OVERWRITEMOD    CSI "4l"            /*!< Mode de non insertion */
    #define DECSTBM         CSI "%.2d;%.2dr"    /*!< Positionne la marge haute et basse */
    /*!
     * @}
     */
     
    /*!
     * \defgroup actcarVT100 Actions sur les caractères affichables
     * @{
     */
    // VT100 : Actions sur les caractères affichables
    #define CA_RESET        CSI "00m"           /*!< Reset */
    #define CA_BRIGHT       CSI "01m"           /*!< Gras */
    #define CA_NOBRIGHT     CSI "22m"           /*!< Normal */
    #define CA_UNDERLINE    CSI "04m"           /*!< Souligné */
    #define CA_NOUNDERLINE  CSI "24m"           /*!< Non souligné */
    #define CA_BLINKING     CSI "05m"           /*!< Clignotant */
    #define CA_NOBLINKING   CSI "25m"           /*!< Non clignotant */
    #define CA_REVERSE      CSI "07m"           /*!< Inverse vidéo */
    #define CA_NOREVERSE    CSI "27m"           /*!< Vidéo non inversée */
    #define CA_HIDDEN       CSI "08m"           /*!< Invisible */
    #define CA_NOHIDDEN     CSI "28m"           /*!< Visible */
    /*!
     * @}
     */
     
    /*!
     * \defgroup actcoulVT100 Couleurs du texte
     * @{
     */
    // VT100 : Couleurs du texte
    #define CL_BLACK        CSI "22;30m"        /*!< Noir */
    #define CL_RED          CSI "22;31m"        /*!< Rouge */
    #define CL_GREEN        CSI "22;32m"        /*!< Vert */
    #define CL_BROWN        CSI "22;33m"        /*!< Brun */
    #define CL_BLUE         CSI "22;34m"        /*!< Bleu */
    #define CL_MAGENTA      CSI "22;35m"        /*!< Magenta */
    #define CL_CYAN         CSI "22;36m"        /*!< Cyan */
    #define CL_LIGHTGRAY    CSI "22;37m"        /*!< Gris */
    #define CL_DARKGRAY     CSI "01;30m"        /*!< Gris foncé */
    #define CL_LIGHTRED     CSI "01;31m"        /*!< Rouge clair */
    #define CL_LIGHTGREEN   CSI "01;32m"        /*!< Vert clair */
    #define CL_YELLOW       CSI "01;33m"        /*!< Jaune */
    #define CL_LIGHTBLUE    CSI "01;34m"        /*!< Bleu clair */
    #define CL_LIGHTMAGENTA CSI "01;35m"        /*!< Magenta clair */
    #define CL_LIGHTCYAN    CSI "01;36m"        /*!< Cyan clair */
    #define CL_WHITE        CSI "01;37m"        /*!< Blanc */
    /*!
     * @}
     */
     
    /*!
     * \defgroup actcoulfondVT100 Couleurs du fond
     * @{
     */
    // VT100 : Couleurs de fond
    #define BK_BLACK        CSI "22;40m"        /*!< Noir */
    #define BK_RED          CSI "22;41m"        /*!< Rouge */
    #define BK_GREEN        CSI "22;42m"        /*!< Vert */
    #define BK_YELLOW       CSI "22;43m"        /*!< Jaune */
    #define BK_BLUE         CSI "22;44m"        /*!< Bleu */
    #define BK_MAGENTA      CSI "22;45m"        /*!< Magenta */
    #define BK_CYAN         CSI "22;46m"        /*!< Cyan */
    #define BK_WHITE        CSI "22;47m"        /*!< Blanc */
    /*!
     * @}
     */
     
    /*!
     * \defgroup deftouchVT100 Quelques touches mono-code
     * @{
     */
    // VT100 : Quelques touches mono-code
    #define V_DEL           0x08                /*!< Touche DEL */
    #define V_TAB           0x09                /*!< Touche TABulation */
    #define V_ENTER         0x0D                /*!< Touche ENTER */
    #define V_ESC           0x1B                /*!< Touche ESCape */
     
    #define V_CTRLA         0x01                /*!< Touche CTRL+A */
    #define V_CTRLB         0x02                /*!< Touche CTRL+B */
    #define V_CTRLC         0x03                /*!< Touche CTRL+C */
    #define V_CTRLD         0x04                /*!< Touche CTRL+D */
    #define V_CTRLE         0x05                /*!< Touche CTRL+E */
    #define V_CTRLF         0x06                /*!< Touche CTRL+F */
    #define V_CTRLG         0x07                /*!< Touche CTRL+G */
    #define V_CTRLH         0x08                /*!< Touche CTRL+H */
    #define V_CTRLI         0x09                /*!< Touche CTRL+I */
    #define V_CTRLJ         0x0A                /*!< Touche CTRL+J */
    #define V_CTRLK         0x0B                /*!< Touche CTRL+K */
    #define V_CTRLL         0x0C                /*!< Touche CTRL+L */
    #define V_CTRLM         0x0D                /*!< Touche CTRL+M - Attention: identique à V_ENTER */
    #define V_CTRLN         0x0E                /*!< Touche CTRL+N */
    #define V_CTRLO         0x0F                /*!< Touche CTRL+O */
    #define V_CTRLP         0x10                /*!< Touche CTRL+P */
    #define V_CTRLQ         0x11                /*!< Touche CTRL+Q */
    #define V_CTRLR         0x12                /*!< Touche CTRL+R */
    #define V_CTRLS         0x13                /*!< Touche CTRL+S */
    #define V_CTRLT         0x14                /*!< Touche CTRL+T */
    #define V_CTRLU         0x15                /*!< Touche CTRL+U */
    #define V_CTRLV         0x16                /*!< Touche CTRL+V */
    #define V_CTRLW         0x17                /*!< Touche CTRL+W */
    #define V_CTRLX         0x18                /*!< Touche CTRL+X */
    #define V_CTRLY         0x19                /*!< Touche CTRL+Y */
    #define V_CTRLZ         0x1A                /*!< Touche CTRL+Z */
    /*!
     * @}
     */
     
    /*!
     * \defgroup def3touchVT100 Quelques touches triple-code
     * @{
     */
    // VT100 : Quelques touches triple-code
    /*
        Structure d'une touche : ESC<code1><code2>
        Exp : Flêche Haute = ESC[A  ==> V_ESC + VCD1 + V_FLCH
        Exp : Touche F1    = ESCOA  ==> V_ESC + VCD2 + V_F1
    */
    #define VCD1    '['             /*!< Code 1 */
      #define V_FLCH        'A'     /*!< Flêche haute */
      #define V_FLCB        'B'     /*!< Flêche basse */
      #define V_FLCD        'C'     /*!< Flêche droite */
      #define V_FLCG        'D'     /*!< Flêche gauche */
     
    #define VCD2    'O'             /*!< Code 2 */
      #define V_F1          'P'     /*!< Touche F1 */
      #define V_F2          'Q'     /*!< Touche F2 */
      #define V_F3          'R'     /*!< Touche F3 */
      #define V_F4          'S'     /*!< Touche F4 */
      #define V_F5          'T'     /*!< Touche F5 */
      #define V_F6          'U'     /*!< Touche F6 */
      #define V_F7          'V'     /*!< Touche F7 */
      #define V_F8          'W'     /*!< Touche F8 */
      #define V_F9          'X'     /*!< Touche F9 */
      #define V_F10         'Y'     /*!< Touche F10 */
      #define V_F11         'Z'     /*!< Touche F11 */
      #define V_F12         'A'     /*!< Touche F12 */
    /*!
     * @}
     * @}
     */
    - Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
    - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen)

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/03/2015, 11h35
  2. [windev] code ansi
    Par lumbroso dans le forum WinDev
    Réponses: 6
    Dernier message: 07/02/2007, 12h23
  3. Réponses: 2
    Dernier message: 15/09/2006, 12h07
  4. positionnement curseur formulaire
    Par hiko-seijuro dans le forum IHM
    Réponses: 9
    Dernier message: 23/08/2006, 19h13
  5. positionnement curseur et code ansi
    Par coach dans le forum C
    Réponses: 7
    Dernier message: 03/11/2003, 23h32

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