![]() |
|
|
|
#1 |
|
Medlem
|
ANSI-koder i konsollen til windows XP
Knoter jo litt med C++ for tiden, og fikk lyst til å få litt farger på teksten fra konsoll-programmene. Vil helst også ha det cross-plattform uten for mye knot.
Windows, selvsagt, har jo ikke ANSI-koder til sin cmd.exe konsoll. Før kunne man lastet ansi.sys, men XP/NT bruker ikke config.sys lenger. Dog en config.nt, men det fikk jeg ikke til. (ANSI.sys in NT - ikke helt XP men..) Derimot fant jeg Ansicon , som jeg kunne kjøre de kompilerte programmene gjennom istedenfor cmd. Det eneste som trengs er å kopiere ansi.dll og ansicon.exe til et sted inneholdt i path-variabelen, eller rett i mappen til programmet du vil kjøre. Dermed blir det litt knot i windows, men så fungerer det i linux på samme måten også! ved kommando-linjen: ansisys programnavn Funket fint med de fleste ANSI-kodene laget et lite program for å teste: Kode:
/*
Colortext
A test to display text in ANSI color codes
Requires an ANSI driver loaded.
In windows XP, use Jason Hood's ANSICON (freeware):
http://www.geocities.com/jadoxa/ansicon/index.html
Use:
start cmd, then run program via ansicon:
ansicon <programname>
in this case (to test):
ansicon colortext
author: 10goto10 (sort of...just a test)
date: 2007.09.07
*/
#include <iostream>
using namespace std;
// foreground normal text color
const char *const ansi_black = "\033[30m";
const char *const ansi_red = "\033[31m";
const char *const ansi_green = "\033[32m";
const char *const ansi_yellow = "\033[33m";
const char *const ansi_blue = "\033[34m";
const char *const ansi_magenta = "\033[35m";
const char *const ansi_cyan = "\033[36m";
const char *const ansi_white = "\033[37m";
// foreground bold text color
const char *const ansi_bblack = "\033[1;30m";
const char *const ansi_bred = "\033[1;31m";
const char *const ansi_bgreen = "\033[1;32m";
const char *const ansi_byellow = "\033[1;33m";
const char *const ansi_bblue = "\033[1;34m";
const char *const ansi_bmagenta = "\033[1;35m";
const char *const ansi_bcyan = "\033[1;36m";
const char *const ansi_bwhite = "\033[1;37m";
// background color
const char *const ansib_black = "\033[40m";
const char *const ansib_red = "\033[41m";
const char *const ansib_green = "\033[42m";
const char *const ansib_yellow = "\033[43m";
const char *const ansib_blue = "\033[44m";
const char *const ansib_magenta = "\033[45m";
const char *const ansib_cyan = "\033[46m";
const char *const ansib_white = "\033[47m";
// special
const char *const ansi_normal = "\033[0m"; // reset all text attributes to normal
const char *const ansi_bold = "\033[1m";
const char *const ansi_boldoff = "\033[2m"; //unreliable, use normal
const char *const ansi_underline = "\033[4m"; // doesnt seem to work
const char *const ansi_blinking = "\033[5m"; // doesnt seem to work
const char *const ansi_reverse = "\033[7m";
const char *const ansi_cls = "\033[2J";
using namespace std;
int main()
{
cout << "COLOR TEXT TEST\n";
cout << ansi_red << "Red " << ansi_bred << " bright red" << ansi_bwhite << " bright white" << ansi_normal << endl;
cout << ansi_green << "Green " << ansi_bgreen << " bright green" << ansi_normal << " normal" << endl;
cout << ansi_yellow << "Yellow " << ansi_byellow << " bright yellow" << ansi_normal << " normal" << endl;
cout << ansi_blue << "Blue " << ansi_bblue << " bright blue" << ansi_normal << " normal" << endl;
cout << ansi_magenta << "Magenta " << ansi_bmagenta << " bright magenta" << ansi_normal << " normal" << endl;
cout << ansi_cyan << "Cyan " << ansi_bcyan << " bright cyan" << ansi_normal << " normal" << endl;
cout << ansi_reverse << "Reverse " << ansi_yellow << ansi_reverse << " bright yellow reverse" << ansi_normal << " normal" << endl;
cout << ansi_red << ansi_bold << "Bold red " << ansi_boldoff << " test bold off" << ansi_bold << ansi_bwhite << " bold bright white" << ansi_normal << " normal" << endl;
cout << "\n " << ansib_red << ansi_byellow << "press return" << ansi_normal << endl;
cin.get();
return 1;
}
Funket fint! Funket også i linux (da uten å trenge en ansisys selvsagt) Uten ansisys vil man se endel koder foran teksten som skulle vært formattert, litt forvirrende men fullt kjørbart som program. |
|
10 goto 10
20 on error continue life |
|
|
|
|
![]() |
| Sosiale bokmerker |
| Brukere som leser denne tråden nå: 1 (0 medlemmer og 1 uregistrerte) | |
| Trådverktøy | |
|
|