Embed mIRC colore codici in un C # letterale?
Domanda
Sto lavorando su un semplice bot IRC in C #, e non riesco a capire come incorporare i codici tipici di controllo mIRC per il grassetto / colore ecc in stringhe letterali.
Qualcuno mi può puntare verso come fare questo?
Soluzione
Il formato del codice di colore mIRC è descritto qui . Immagino che tu stai chiedendo come incorporare un ^ C in una stringa.
Questo è noto come Caret notazione . Secondo C0 e codici di controllo C1 , ^ C è:
'\x03'
incorporato in una stringa:
"blabla \x035,12to be colored text and background\x03 blabla"
Altri suggerimenti
Creo un enum e assegnare i valori esadecimali per i codici di controllo ad essi.
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 */
};
Nel mio Python IRC bot, posso avere il coraggio di presentarsi in irssi usando \ x02sometext \ X02, che si presenta come:
this is \x02some text\x02
questo è testo
Per quanto riguarda i colori, credo che siete in cerca di \ x03AA, BB dove A è il colore di primo piano e il colore di sfondo B (quello che ci si digita dopo Ctrl + K). Non al 100% di sicuro, però. Prova il collegamento di un client IRC usando telnet, e verificare ciò che mIRC fa quando si utilizza Ctrl + K.
Non è molto probabile che per ottenere un comportamento coerente standard attraverso client IRC ... codici di escape ANSI sono trattati con più del fiocco vecchia tariffa client Unix come irssi, e mIRC a volte fa la sua cosa.
Questo potrebbe essere giù in biblioteca specifica chiacchierata stavo usando (ChatSharp), ma non ho potuto ottenere la corrente risposta accettata a lavorare. Quello che ho finito con era:
channel.SendMessage((char)3 + "5,12hello");