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 de sortie


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut Mise en forme de sortie
    Bonjour,

    Je voudrait savoir quel fonction utilisé pour obtenir une sortie de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select *
    wireframe off
    ribbons on
    color chain
        (select (*A and 112) or (*B and 160)
        wireframe 100
        color unecouleur)*autant de fois que l'on veut
    Je traite mes données et j'ai besoin de les récupérer en script qui varie selon les besoins de l'utilisateur. J'ai déjà un cut off que je dois utiliser.
    J'ai essayer d'utiliser fprintf mais c'est pas génial.
    Est ce que je dois (ou peux) faire plusieurs fprintf sur le même fichier ?
    Y aurait -t 'il une autre solution ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut
    je pense que tu devrais reformuler la question, elle est pas très claire.
    dis ce que tu veux comme résultat dans ton fichier de sortie. et un bout de code qui bloque pour le moment.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par soria_t
    Je voudrait savoir quel fonction utilisé pour obtenir une sortie de type:
    <...>
    J'ai essayer d'utiliser fprintf mais c'est pas génial.
    Est ce que je dois (ou peux) faire plusieurs fprintf sur le même fichier ?
    Y aurait -t 'il une autre solution ?
    fprintf() est probablement ce qu'il y a de plus souple. Tu peux l'appeler plusieurs fois, faire des boucles...

    N'oublie pas de terminer les lignes par un '\n' et de fermer le fichier quand c'est fini.

    Fait de ton mieux et poste ton code.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    Voici le code que j'utilise, mais j'ai l'impression qu'il n'est pas très joli

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    void afficher_paires_scr(char *nomfichier)
    {
      int k;
      FILE* file;
     
      if (nomfichier !=NULL) {
        file = fopen(nomfichier, "w");
        if (file == NULL) {
          fprintf(stderr, "Le fichier %s n'a pas pu etre ouvert\n", nomfichier);
          exit(1);
        }
      }
      else
        file = stdout;
     
      fprintf(stderr, "Ecriture du fichier SCR: %s\n", nomfichier);
      printf (file,"select *\n  wireframe off \n ribbons on \n color chain\n ");
      for (k = 0; k < max_paires && res_pair[k].r1 != NULL; k++)
        fprintf (file, "select (* %c and %d)  or (* %c and %d)\n  wireframe %d\n color red\n color red select *",res_pair[k].r1->chain_id, res_pair[k].r1->res_seq, res_pair[k].r2->chain_id, res_pair[k].r2->res_seq);
      if (nomfichier != NULL)
        fclose(file);
    }
    Si quelqu'un à une solution un peu plus propre!

    Aussi je voudrait savoir s'il y a moyen de mettre des couleurs différentes à chaque boucle ?

  5. #5
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par soria_t
    Aussi je voudrait savoir s'il y a moyen de mettre des couleurs différentes à chaque boucle ?
    Une petite erreur dans le code fourni:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf (file,"select *\n  wireframe off \n ribbons on \n color chain\n ");
    Je ne comprends pas bien votre question relative aux couleurs. Désirez-vous sauvegarder du texte en couleur dans un fichier? Si tel est le cas, ce n'est pas possible dans un simple fichier texte. En revanche, en sortie sur la console, il est possible d'utiliser des couleurs.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par soria_t
    Voici le code que j'utilise, mais j'ai l'impression qu'il n'est pas très joli
    Si quelqu'un à une solution un peu plus propre!
    Merci pour le code incomplet. Une demi-heure de corrections et de backward-engineering..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    #include<stdio.h>
    #include<stdlib.h>
     
    struct data
    {
       int chain_id;
       int res_seq;
    };
     
    typedef struct
    {
       struct data *r1;
       struct data *r2;
    }
    T;
     
    void afficher_paires_scr (char const *nomfichier, int max_paires,
                              T * res_pair, int wireframe)
    {
       int k;
       FILE *file;
     
       if (nomfichier != NULL)
       {
          file = fopen (nomfichier, "w");
          if (file == NULL)
          {
             fprintf (stderr, "Le fichier %s n'a pas pu etre ouvert\n",
                      nomfichier);
             exit (1);
          }
       }
       else
          file = stdout;
     
       fprintf (stderr, "Ecriture du fichier SCR: %s\n", nomfichier);
       fprintf (file,
                "select *\n  wireframe off \n ribbons on \n color chain\n ");
       for (k = 0; k < max_paires && res_pair[k].r1 != NULL; k++)
          fprintf (file,
                   "select (* %c and %d)  or (* %c and %d)\n"
                   " wireframe %d\n"
                   " color red\n"
                   " color red select *\n", res_pair[k].r1->chain_id,
                   res_pair[k].r1->res_seq, res_pair[k].r2->chain_id,
                   res_pair[k].r2->res_seq, wireframe + k);
       if (nomfichier != NULL)
          fclose (file);
    }
     
    int main (void)
    {
       struct data n11 = { 'a', 123 };
       struct data n12 = { 'b', 456 };
     
       struct data n21 = { 'c', 78 };
       struct data n22 = { 'd', 90 };
     
       T a[] = {
          {&n11, &n12},
          {&n21, &n22},
          {NULL, NULL},
       };
       afficher_paires_scr (NULL, sizeof a / sizeof *a, a, 12);
     
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Ecriture du fichier SCR: (null)
    select *
      wireframe off
     ribbons on
     color chain
     select (* a and 123)  or (* b and 456)
     wireframe 12
     color red
     color red select *
    select (* c and 78)  or (* d and 90)
     wireframe 13
     color red
     color red select *
     
    Press ENTER to continue.
    Aussi je voudrait savoir s'il y a moyen de mettre des couleurs différentes à chaque boucle ?
    Pas en C standard. Mais bon, la couleur dans un fichier, je le sens mal...

  7. #7
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    Oui, je l'ai vu sur mon code et je pensais l'avoir rectifié ici aussi .

    En fait il s'agit de générer à chaque fois une couleur différente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf (file, "select (* %c and %d)  or (* %c and %d)\n  wireframe %d\n color red\n " ,res_pair[k].r1->chain_id, res_pair[k].r1->res_seq, res_pair[k].r2->chain_id, res_pair[k].r2->res_seq);
    au lieu que ce soit red, blue, purple ou n'importe quelle autre couleur. J'ai souvenir d'avoir vu la possibilité de générer aléatoirement des chiffres, et j'aurais aimé faire la même chose pour des couleurs.

  8. #8
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par soria_t
    au lieu que ce soit red, blue, purple ou n'importe quelle autre couleur. J'ai souvenir d'avoir vu la possibilité de générer aléatoirement des chiffres, et j'aurais aimé faire la même chose pour des couleurs.
    Que voulez-vous faire avec ces couleurs? Souhaitez-vous écrire à l'écran en couleur?

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par soria_t
    En fait il s'agit de générer à chaque fois une couleur différente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       fprintf (file, "select (* %c and %d)  or (* %c and %d)\n"
                      "  wireframe %d\n"
                      " color red\n " 
                      ,res_pair[k].r1->chain_id
                      , res_pair[k].r1->res_seq
                      , res_pair[k].r2->chain_id
                      , res_pair[k].r2->res_seq);
    au lieu que ce soit red, blue, purple ou n'importe quelle autre couleur. J'ai souvenir d'avoir vu la possibilité de générer aléatoirement des chiffres, et j'aurais aimé faire la même chose pour des couleurs.
    OK. Tu fais un tableau de chaines avec le nom des couleurs,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static char const *as[]=
    {
       "red",
       " blue",
       /* etc. */
    };
    tu tires l'indice avec rand() et tu insères la couleur correspondante as[i] dans la chaine...

    Facile.

    http://emmanuel-delahaye.developpez.com/notes.htm#rand

  10. #10
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Pardon, je n'avais pas vu le " color red\n ", d'où ma question précédente .

  11. #11
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    En fait le script est destiné à être utilisé par un programme (Rasmol pour ceux qui connaissent) qui applique ce qu'on lui demande.

    Je suis désolée pour les bouts de programme qui manquent . .

    Merci pour votre aide

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par stephl
    Pardon, je n'avais pas vu le " color red\n ", d'où ma question précédente .
    Moi aussi, j'ai mis du temps à comprendre...

    C'est le problème général de la confusion entre l'outil informatique et le métier au service duquel est cet outil.

    Ne lisant 'couleur', on a tous pensé 'info', il fallait penser 'métier'... Reconnaissons qu'on n'était pas aidés...

Discussions similaires

  1. Mise en forme de sortie
    Par Flodelarab dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2014, 16h58
  2. shell + mise en forme + sortie html
    Par tetzispa dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 19/09/2011, 21h56
  3. mise en forme rapide d'applets
    Par appletj dans le forum Applets
    Réponses: 11
    Dernier message: 03/06/2004, 13h28
  4. Mise en forme HTML
    Par Regis.C dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 25/04/2004, 11h55
  5. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 15h16

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