Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » FAQ C / C++ (ANSI-Standard) » Header File für Farben (ansi)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.08.2003, 18:25 Uhr
Pablo
Supertux
(Operator)


Ich hab eine Header Datei mit den Escape Sequenzen für die Farben erstellt.

Hier der Code dafür:

colors.h

C++:
/***************************************************************************
                          color.h  -  description
                             -------------------
    begin                : 16.08.2003
    copyright            : (C) 2003 by Pablo
    email                : pabloy@pcpool.mathematik.uni-freiburg.de
***************************************************************************/


/***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************/



#ifndef LS_COLORS_CONST
#define LS_COLORS_CONST

#define BLACK "\033[0;30m"
#define DARK_RED "\033[0;31m"
#define DARK_GREEN "\033[0;32m"
#define BROWNE "\033[0;33m"
#define DARK_BLUE "\033[0;34m"
#define DARK_PURPLE "\033[0;35m"
#define DARK_CYAN "\033[0;36m"
#define GRAY "\033[0;37m"

#define LIGHT_BLACK "\033[1;30m"
#define LIGHT_RED "\033[1;31m"
#define LIGHT_GREEN "\033[1;32m"
#define YELLOW "\033[1;33m"
#define LIGHT_BLUE "\033[1;34m"
#define LIGHT_PURPLE "\033[1;35m"
#define LIGHT_CYAN "\033[1;36m"
#define WHITE "\033[1;37m"

#define BG_BLACK "\033[0;40m"
#define BG_RED "\033[0;41m"
#define BG_GREEN "\033[0;42m"
#define BG_BROWNE "\033[0;43m"
#define BG_BLUE "\033[0;44m"
#define BG_PURPLE "\033[0;45m"
#define BG_CYAN "\033[0;46m"
#define BG_GRAY "\033[0;47m"

#define DEFAULT_COLOR "\033[0m"
#define NORMAL_COLOR "\033[0m"
#define DARK_TEXT "\033[0m"
#define LIGHT_TEXT "\033[1m"
#define UNDERLINED_TEXT "\033[4m"
#define BLINKING_TEXT "\033[5m"
// BLINKING_TEXT doesn't function on simple terminals such xterm
// on KDE Terminal and on console use only.
#endif



Mann kann sie auch von
http://pcpool.mathematik.uni-freiburg.de/~pabloy/cpp/colors.h
runterladen.

Usage:


C++:
#include <stdio.h>
#include "colors.h"
int main()
{
    printf("%sDer Text ist rot%s, aber nicht mehr.\n",DARK_RED, NORMAL_COLOR);
    printf("%s%s%sRoter Text, blauer heller Hintergrund%s\n", LIGHT_TEXT, BG_BLUE, LIGHT_RED,NORMAL_COLOR);
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 07.10.2003 um 02:06 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.08.2003, 20:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


funktioniert aber nur unter linux oder?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.08.2003, 20:57 Uhr
Pablo
Supertux
(Operator)


Ja und nein. Unter Linux funktioniert es auf jeden Fall. Unter Windows funktioniert, nur dann, wenn in configs.sys device=ansi.sys enthalten ist.


Zitat:
Bruder Leif postete
Moin!

Natürlich erkennt VC++ das nicht, genausowenig wie alle anderen C/C++-Compiler. Die ANSI-Codes werden erst vom Bildschirmtreiber erkannt, der setzt sie dann um. Unter DOS konnte man z.B. beim Booten die ANSI.SYS laden, dann funktionierten dort auch die ganzen ANSI-Codes inklusive "cls" usw...

Ist also eine Sache des Betriebssystems, nicht des verwendeten Compilers. Unter Cygwin funktionierts, weil dort automatisch ein anderer Bildschirmtreiber verwendet wird. Unter Win NT/2000 kannst Du den Befehl

device=ansi.sys

in die Config.nt schreiben, unter Win 95/98/ME ist es die Config.sys. Dann funktioniert das auch unter Windows.


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 16.08.2003 um 20:58 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.08.2003, 19:38 Uhr
Pablo
Supertux
(Operator)


Achtung: Ich hab einen Fehler entdeckt. Das funktioniert allerdings unter aterm, Eterm aber unter xterm und Cosole wird nicht funktioniert.

Ich hab oben schon aktualisiert, der Fehler sind die Kommas (,). Statt Komma (,) geht ein Semikolon (;), bsp stat \033[1,31m muss \033[1;31m
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 30.08.2003 um 23:47 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ FAQ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: