11
votes

Intégrer les codes de couleur MIRC dans un littéral C #?

Je travaille sur un simple bot IRC en C #, et je ne peux pas comprendre comment intégrer les codes de contrôle MIRC typiques pour gras / couleur, etc. dans les littéraux de chaîne.

Quelqu'un peut-il me dire comment faire cela?


2 commentaires

Faire ce que? Qu'est-ce qu'un code de couleur MIRC? Qu'essayez-vous de faire?


Un code de couleur MIRC est simplement un caractère spécial insérant dans une chaîne que la plupart des clients IRC analysent puis colorent de manière appropriée.


4 Réponses :


8
votes

Dans mon python IRC Bot, je peux devenir audacieux de se présenter à Irssi à l'aide de \ x02someext \ x02, qui apparaît comme: xxx

ceci est du texte

Comme pour les couleurs, je pense que vous recherchez \ X03AA, BB où A est la couleur de premier plan et b la couleur d'arrière-plan (ce qui vous tiendrait après Ctrl + K). Pas à 100% à coup sûr, cependant. Essayez de connecter un client IRC à l'aide de Telnet et vérifiez ce que MIRC a fait lorsque vous utilisez CTRL + K.

Vous n'êtes pas susceptible d'obtenir un comportement cohérent standard sur les clients IRC ... Les codes d'échappement ANSI sont traités par Plus d'informations sur les anciens clients UNIX tels que IRSSI, et MIRC, fait parfois sa propre chose.


2 commentaires

MIRC a ses propres codes de couleur (indiqués par \ X03), et je pense que cela est bien soutenu sur les clients de l'interface graphique d'au moins ces jours-ci. Je prendrais probablement cette route pour un client IRC. En outre, j'en doute IRSSI et des clients de Commandline similaires analysent les codes ANSI, ils les analysent simplement à la console et laissent cela s'inquiéter d'eux.


Les couleurs MIRC sont assez standard et, tandis que certains clients pourraient avoir leurs propres palettes, la plupart des clients devraient utiliser la même palette, même si ce n'est pas exactement la même chose. Les codes d'échappement ANSI ne sont pas pris en charge par tous les clients, les seuls que je connaisse sont IRSSI et (surprenant) hexchat.



19
votes

Le format de code de couleur MIRC est décrit ici . Je suppose que vous demandez comment incorporer un ^ c dans une chaîne.

Ceci est connu sous le nom NOTATION CARET . Selon codes de contrôle C0 et C1 , ^ C est: xxx

incorporé dans une chaîne: xxx


2 commentaires

Ou vous pouvez même écrire "♥ 5,12 pour être couleur ♥" , le compilateur ne doit pas s'étouffer à ce sujet.


Ce n'est pas un code de couleur Ansi. Les codes de couleur ANSI sont: "\ x1b [32,42m" etc.



11
votes

Je crée une énumération et attribuez les valeurs hexagonales pour les codes de contrôle.

enum ColorCode {
    White           =   0,   /**< White */
    Black           =   1,   /**< Black */
    DarkBlue        =   2,   /**< Dark blue */
    DarkGreen       =   3,   /**< Dark green */
    Red         =   4,   /**< Red */
    DarkRed         =   5,   /**< Dark red */
    DarkViolet      =   6,   /**< Dark violet */
    Orange          =   7,   /**< Orange */
    Yellow          =   8,   /**< Yellow */
    LightGreen      =   9,   /**< Light green */
    Cyan            =  10,   /**< Cornflower blue */
    LightCyan       =  11,   /**< Light blue */
    Blue            =  12,   /**< Blue */
    Violet          =  13,   /**< Violet */
    DarkGray            =  14,   /**< Dark gray */
    LightGray       =  15   /**< Light gray */
};

enum ControlCode {
    Bold            = 0x02,     /**< Bold */
    Color           = 0x03,     /**< Color */
    Italic          = 0x09,     /**< Italic */
    StrikeThrough           = 0x13,     /**< Strike-Through */
    Reset           = 0x0f,     /**< Reset */
    Underline       = 0x15,     /**< Underline */
    Underline2      = 0x1f,     /**< Underline */
    Reverse         = 0x16      /**< Reverse */
};


1 commentaires

Merci beaucoup pour les énums



0
votes

Cela pourrait être à la baisse de la bibliothèque de discussion spécifique que j'utilisais (CHATSHARP), mais je ne pouvais pas obtenir la réponse actuelle acceptée au travail. Ce que j'ai fini avec était: xxx


0 commentaires