begin process at 2012 02 12 05:00:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CCRT

CCRT


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Classé sous :crt, unix, vt100, pascal, conio Niveau :Débutant Date de création :11/09/2006 Date de mise à jour :18/10/2006 23:07:28 Vu / téléchargé :5 210 / 122

Auteur : blackdead08

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
J'ai débuté la programmation en Pascal...
L'unité graphique crt m'a permis de développer plein d'application console interactive...

Ccrt fait la même chose pour C Unix :-)

elle peut simplifier plusieurs chose (readkey, delay...)

Source

  • #include <stdio.h>
  • #include <termios.h>
  • #include <unistd.h>
  • #include <stdlib.h>
  • #include <time.h>
  • typedef enum
  • {
  • BLACK,
  • RED,
  • GREEN,
  • YELLOW,
  • BLUE,
  • MAGENTA,
  • CYAN,
  • WHITE
  • } COLORS;
  • void mode_raw(int activer) {
  • static struct termios cooked;
  • static int raw_actif = 0;
  • if (raw_actif == activer) {return;}
  • if (activer) {
  • struct termios raw;
  • tcgetattr(STDIN_FILENO, &cooked);
  • raw = cooked;
  • cfmakeraw(&raw);
  • tcsetattr(STDIN_FILENO, TCSANOW, &raw);
  • }
  • else {tcsetattr(STDIN_FILENO, TCSANOW, &cooked);}
  • raw_actif = activer;
  • }
  • void ClrScr(void) {printf("\e[2J");}
  • void GotoXY(int y, int x) {printf("\e[%d;%dH", x, y);}
  • void Delay(int pause) {usleep(pause*1000);}
  • void Blink(int activer) {(activer)? printf("\e[5m") : printf("\e[0m");}
  • void Blod(int activer) {(activer)? printf("\e[1m") : printf("\e[0m");}
  • void Underline(int activer) {(activer)? printf("\e[4m") : printf("\e[0m");}
  • void TextColor(int fg)
  • {
  • int x=fg;
  • if((fg < 0) || (fg > 7)) x = 0;
  • printf("\e[3%dm", x);
  • }
  • void TextBackground(int bg)
  • {
  • int x=bg;
  • if((bg < 0) || (bg > 7)) x = 0;
  • printf("\e[4%dm", x);
  • }
  • char ReadKey(void)
  • {
  • char c;
  • mode_raw(1);
  • c = getchar();
  • mode_raw(0);
  • return c;
  • }
  • int KeyPressed(void)
  • {
  • struct timeval tv = { 0, 0 };
  • fd_set readfds;
  • FD_ZERO(&readfds);
  • FD_SET(STDIN_FILENO, &readfds);
  • return select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv) == 1;
  • }
  • void GetPass(char * prompt, char * pass)
  • {
  • int cpt=0;
  • printf("%s", prompt);
  • while((pass[cpt]=ReadKey())!=13 && cpt!=100)
  • {
  • putchar('*');
  • cpt++;
  • }
  • printf("\n");
  • pass[cpt]=0;
  • }
  • void line(int x, char c1, char c2)
  • {
  • int cpt;
  • putchar(c1);
  • for(cpt=1; cpt<=(x-2); cpt++) putchar(c2);
  • putchar(c1);
  • putchar('\n');
  • }
  • void box(int x, int y, char c1, char c2, char c3, char c4)
  • {
  • int cpt;
  • line(x, c1, c2);
  • for(cpt=1; cpt<=(y-2); cpt++) line(x, c3, c4);
  • line(x, c1, c2);
  • }
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>

typedef enum
{
  BLACK,
  RED,
  GREEN,
  YELLOW,
  BLUE,
  MAGENTA,
  CYAN,
  WHITE
} COLORS;

void mode_raw(int activer) {
  static struct termios cooked;
  static int raw_actif = 0;
  if (raw_actif == activer) {return;}
  if (activer) {
    struct termios raw;
    tcgetattr(STDIN_FILENO, &cooked);
    raw = cooked;
    cfmakeraw(&raw);
    tcsetattr(STDIN_FILENO, TCSANOW, &raw);
  }
  else {tcsetattr(STDIN_FILENO, TCSANOW, &cooked);}
  raw_actif = activer;
}

void ClrScr(void) {printf("\e[2J");}

void GotoXY(int y, int x) {printf("\e[%d;%dH", x, y);}

void Delay(int pause) {usleep(pause*1000);}

void Blink(int activer) {(activer)? printf("\e[5m") : printf("\e[0m");}

void Blod(int activer) {(activer)? printf("\e[1m") : printf("\e[0m");}

void Underline(int activer) {(activer)? printf("\e[4m") : printf("\e[0m");}

void TextColor(int fg)
{
  int x=fg;
  if((fg < 0) || (fg > 7)) x = 0;
  printf("\e[3%dm", x);
}

void TextBackground(int bg)
{
  int x=bg;
  if((bg < 0) || (bg > 7)) x = 0;
  printf("\e[4%dm", x);
}

char ReadKey(void)
{
  char c;
  mode_raw(1);
  c = getchar();
  mode_raw(0);
  return c;
}

int KeyPressed(void)
{
  struct timeval tv = { 0, 0 };
  fd_set readfds;
  
  FD_ZERO(&readfds);
  FD_SET(STDIN_FILENO, &readfds);
  
  return select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv) == 1;
}

void GetPass(char * prompt, char * pass)
{
  int cpt=0;
  printf("%s", prompt);
  while((pass[cpt]=ReadKey())!=13 && cpt!=100) 
    {
      putchar('*'); 
      cpt++; 
    }
  printf("\n");
  pass[cpt]=0;
}

void line(int x, char c1, char c2)
{
  int cpt;
  putchar(c1);
  for(cpt=1; cpt<=(x-2); cpt++) putchar(c2);
  putchar(c1);
  putchar('\n');
}

void box(int x, int y, char c1, char c2, char c3, char c4)
{
  int cpt;
  line(x, c1, c2);
  for(cpt=1; cpt<=(y-2); cpt++) line(x, c3, c4);
  line(x, c1, c2);
}

 Conclusion

c = readkey(); /*pas attente de retour chariot*/

KeyPressed(); /*verifie la présence d'une touche pressée dans le buffer*/

TextColor (0..7) ou TextColor(Blue....

idem TextBackground

Clrscr(); /*efface l'écran*/

delay <=> pause

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 octobre 2006 18:04:43 :
ajout de la fonction "KeyPressed" équivalente a kbhit();
18 octobre 2006 23:07:28 :
ajout des fonctions usuelles >> Box, Line +++ évolution des connaissances >> typedef, enum +++ sécurité >> Getpass

 Sources du même auteur

Source avec Zip Source avec une capture OTHELLOC
Source avec une capture [C]GENERATEUR DE SUDOKU [TERMINAL]

 Sources de la même categorie

Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi
Source avec Zip Source avec une capture XCOUPE : COUPE 2D par pop70

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel
Source avec Zip ANALYSEUR SYNTAXIQUE DU LANGUAGE PASCAL (ANALYSE DESCENDANTE... par wiseman1989
LIBRAIRIE POUR SOCKETS C++ par genetApt151
UNIX : LISTER LE NOMBRE DE PROCESSUS TOURNANT SUR LA MACHINE par jojo930
Source avec Zip REMPLACE CRT (WIN64) par Arnotic

Commentaires et avis

Commentaire de blackdead08 le 11/09/2006 00:11:00

D'accord ce n'est pas ncurses ni gtk.....
C'est quand même plus facile
;-)

supprimez si cela n'intéresse personne  

Commentaire de Funto66 le 03/08/2008 02:44:29

Ah non, moi ça m'intéresse, je suis en train d'écrire un système de log pour mon moteur 3D, et pouvoir rajouter de la couleur, ça va bien être utile, merci :)

Vais essayer de trouver de la doc sur les codes d'échappement des terminaux vt100 moi...A tout hasard, tu saurais pas comment faire pour récupérer la couleur actuelle du terminal ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

conio.h sous unix [ par tavernier ] Je cherche a savoir s'il existe un equivalent de conio.h sous unix, linux, mac, ou bsd.Qq1 aurait il assez de temps pour me décrire les fonctions de u Unix [ par cybermarcel ] bonjours tout le monde je voulait juste savoir si quelqu'un avait des information sur la programmation d'une plateforme unixje voudrai savoir si ca se librairie SDL et coonio.h [ par gloom ] salut peuple svp qq1 opurrait t'il m'aider voila je cherche a afficher une photo sous console DOS pour cela je sait qu'il ¸faute une librairie SDL mai lecture/écriture des fichier .ini sous UNIX/Windows [ par MELISA ] Bonjour à tous,C'est mon premier message sur ce forum, alors je vais essayer d'être clair.J'aimerais savoir s'il existe ou si quelqu'un a déjà impléme developpement ftp [UNIX] [ par twolf ] Bonjour a tous tout d'abord je suis a la recherche de source en C ou d'info (en francais si possible) qui permette de créer ce source sous UNIX le but lister le contenu d'un repertoire (UNIX et WINDOWS) [ par ox2 ] Salut a tous !Je souhaite lister le contenu d'un repertoire en multiplateforme, pour en extraire la liste des repertoires presents.Sous windows, c'es morpion en turbo pascal [ par norvegien ] SalutJ'aurai besoin d'un coup de main pour faire un morpion 5x5 en turbo pascal. C pour un projet info à faire avant la fin de l'annee et com j'ai jam acces a une bdd en c++ a partir d'unix [ par nezar ] salut tous le monde, je suis un debutant en c++, et je bosse sur un projet C++, je suis sur une station SOLARIS, avec un compilateur SUN.en ce moment socket AF_UNIX [ par hobbes ] Bonjour,Je cherche les sources de l'utilisation des sockets avec AF_UNIX.QQ peut il m aider???Bonne programmation. encodage base64 sous unix [ par goth ] je voudrais savoir si vous avez une fonction d'encodage base64 (pour encodage MIME) sous unix qui soit simple à utiliserMerci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,794 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales