IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Mise en forme message d'erreur en c : possible ou non?


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut Mise en forme message d'erreur en c : possible ou non?
    Bonjour à tous et à toutes,

    Est-il possible de mettre en forme un message d'erreur (par exemple attribuer une couleur...) dans un programme C ? Je parle de l'affichage écran ou même dans un fichier. Je sais que c'est pas du Word mais je pose quand même la question peut être d'autres personnes se sont posées la même question un jour.


    Merci d'avance pour vos réponses.

    Environnement : Windows

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Cela n'est pas supporté en C standard mais c'est possible sous Windows (entre autres), grâce à la fonction SetConsoleTextAttribute. Voici un exemple simple où l'on écrit du texte en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        HANDLE Ecran = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(Ecran, FOREGROUND_RED);
        printf("Voici du texte en rouge.\n");
        /* Nous n'avons plus besoin de la couleur rouge. Remettons le blanc sombre (rouge + vert + bleu avec intensite 0). */
        SetConsoleTextAttribute(Ecran, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
        printf("Et voici du texte en blanc.\n");
        return 0;
    }
    Un fichier texte par contre ne sera jamais en couleur (mais le texte peut être affiché dans une couleur donnée dans un éditeur de texte par exemple), c'est contraire à l'idée de "texte brut". Si tu veux un fichier en couleur, écris dans un fichier "texte enrichi" (RTF) ou Word (doc, docx) par exemple.

  3. #3
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Si tu veux un fichier en couleur, écris dans un fichier "texte enrichi" (RTF) ou Word (doc, docx) par exemple
    Juste, mais les logs "formatés" sont en générale écrit en html.
    all your base are belong to us.

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Tu as parfaitement raison, HTML étant d'ailleurs plus simple et plus normalisé. Je ne parlais cependant pas de logs formatés, mais de textes formatés en général. Dans tous les cas, j'aurais du en effet au moins évoqué le HTML.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Oui effectivement par définition pas de couleur dans du texte brut, autant pour moi.

    Si je comprends bien, il faut écrire du HTML dans mon code C pour la portabilité?

    Merci pour lien.

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Oui, tu crées un fichier (.html) dans lequel tu écris du code HTML ...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    et comment sera utilisé le fichier.html dans le code C?

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je n'ai pas compris ta question. Peux-tu la reformuler et illustrer d'un exemple ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Une fois que j'ai écris mon fichier.html, comment vais-je l'utiliser dans mon programme C pour afficher en couleur (à l'écran) mes messages d'erreur?

    En revanche si c'est juste coder le message d'erreur en html pour écrire ensuite en couleur dans un fichier.html il y a pas de souci, je pense que je saurai le faire.

    Je ne sais pas si je me suis fait comprendre.

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    La solution du HTML n'avait pas pour but de lire le fichier sur la console mais depuis un logiciel tiers (un navigateur).

    Ou alors il existe aussi un autre moyen : créer une fenêtre Windows et afficher les erreurs dans un EditBox (il y a moyen de mettre de la couleur dedans il me semble). Mais pour cela, il faut apprendre la programmation Windows.

    Si tu débutes en programmation, la solution de créer un fichier HTML reste la meilleure et la plus simple.


    EDIT :
    Quoique la solution de la fenêtre Windows... Si tu veux copier/coller les messages écrits dedans vers un fichier de log, ça ne résoudra de toute façon pas le problème des couleurs.
    Le HTML reste donc la meilleure solution.

  11. #11
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    En effet, le formatage que l'on peut faire dans une application console est très limitée. La résolution de la console (25 lignes x 80 colonnes (par défaut)) notamment ne permet pas d'afficher des documents complexes comportant des graphiques élaborés, ce qui nécessite une grande résolution et plein de couleurs, ce qui n'est disponible que dans un environnement graphique (c'est-à-dire dans une application à base de fenêtre). Ne cherche donc même pas à afficher une page web dans une application console. D'ailleurs, ce n'est pas pour l'afficher directement dans ton application que l'on t'a conseillé de générer une page web (ou n'importe quel autre document formaté (RTF, Word, etc.)) pour y inscrire les erreurs, mais juste pour avoir un journal de ces erreurs. Si tu veux directement afficher les messages d'erreurs dans ton application, tu peux oublier toute cette histoire.

    Je t'ai déjà montré comment mettre des couleurs dans une application console. Si cela ne te suffit pas, tu n'as plus d'autre choix que de créer une application graphique. Comme dans une telle application tu peux faire toutes les mises en forme que tu veux, encore une fois : oublie l'HTML et co. si ton but est d'afficher les messages directement dans ton application. Tu trouveras plein de tutoriels sur la création d'interfaces graphiques en C ici.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Merci Melem et Jeroman pour votre expertise. J'ai beaucoup appris!!! J'oublie l'écriture des messages d'erreur dans un fichier, j'avais utilisé la solution suivante que Melem m'avait proposée et ça me convient pour l'instant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        HANDLE Ecran = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(Ecran, FOREGROUND_RED);
        printf("Voici du texte en rouge.\n");
     
        return 0;
    }
    Et merci pour les liens, les tuto sont bien faits.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] Refus de mise à jour sans message d'erreur
    Par Delioneras dans le forum Développement
    Réponses: 4
    Dernier message: 13/05/2015, 17h49
  2. [XL-2010] Mise en forme barre d'erreur par macro
    Par citizenbaban dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/04/2013, 09h37
  3. Mise en forme message d'erreur
    Par Lenou dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2009, 10h01
  4. [FORMS] Message d'erreur
    Par layate dans le forum Forms
    Réponses: 4
    Dernier message: 27/07/2006, 15h12
  5. [FORMS] Message d'erreur FRM-40106
    Par sourizeante dans le forum Forms
    Réponses: 2
    Dernier message: 11/08/2004, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo