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 :

afficher les résultats dans un tableau


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Points : 85
    Points
    85
    Par défaut afficher les résultats dans un tableau
    Bonjour,
    Je travaille sur une IHM (C++ / ILOG Views), et je suis entrain de tester ses performances et de calculer quelques résultats.

    Pour l'instant, je mets toutes ses traces dans un fichier .txt, mais ça devient illisible. J'aimerais bien savoir quels sont les moyens disponibles (langages, méthodes, ...) pour pouvoir stocker mes résultats dans un joli tableau, dans un fichier indépendant de l'IHM (et donc d'ILOG Views ).

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Un simple fichier texte avec des valeurs séparées par des virgules et tu as un format CSV que tu peux importer dans ton tableur préféré (EXCEL ou autre).
    Un fichier HTML de base (le format n'est pas très compliqué) avec un tableau pour regrouper tes valeurs.
    Un fichier XML structurerait tes données mais nécessiterait à minima un XSLT pour avoir une présentation acceptable. C'est un peu plus lourd à écrire.
    etc...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pour le format CSV et Excel, le plus raisonnable est d'utiliser des ";" comme séparateurs de colonnes. Excel lira (éventuellement via la fonction "convertir") le format délimité par des virgules, mais leur utilisation comme séparateurs est à proscrire dès qu'un fichier contient des champs textes (car il y a souvent des virgules dans le texte, d'où des problèmes...).

    On rencontre aussi des formats ou la tabulation sert de séparateur (c'est le "csv natif" d'excel), mais là il faut faire gaffe à certains éditeurs de texte, qui remplacent les tabs par des espaces, détruisant le formatage au passage.

    Donc, pour remplacer ton format texte par un tableau (disons de trois colonnes de chiffres), tu vas écrire quelque chose comme...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    flog<<"titre;colonne 1;colonne 2;colonne3"<<endl;
    for(int i=0;i<nb_lignes;i++) {
       flog<<titre[i];
       for(int j=0;j<3;j++) flog<<";"<<tab[i][j];
       flog<<endl;
    }
    Et si tu lui donnes l'extension csv, ca s'ouvre d'un clic sous excel.

    Autre petit truc à savoir : Excel se débrouille comme un chef pour distinguer à la lecture les champs nombres des champs textes, mais il attend (en tous cas sur les versions françaises) des virgules comme séparateur. Les fonctions fstream du C++, par défaut, écrivent des points comme séparateur. Là encore, tu peux tout remplacer d'un coup à la main sous excel (ouais, sauf si tu as des champs texte avec des points dedans...), mais le plus simple est d'exporter avec des virgules décimales, en utilisant la fonction idoine.

    Francois

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut AQ
    Salut,

    A vrai dire, je ne vois aucune référence à excell dans la question, et donc, je me demande réellement si c'est effectivement ce dont mehdi_me85 a besoin...

    Personnellement, je resterais donc avec la base d'un fichier exclusivement texte, et j'utiliserais setw, setfill et right (ou left) pour l'alignement de la trace.

    Maintenant, il faut déjà voir si mehdi_me85 peut déterminer avec plus ou moins de précision le nombre de caractères utiles aux différentes informations qu'il doit écrire dans le fichier, mais, au final, l'écriture pourrait ressembler à ce qui est présenté dans l'entrée Comment formater l'affichage sur les flux ? de la FAQ

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bah, pour sortir et traiter des statistiques, le plus simple est d'utiliser un tableur, ca va vite, c'est quasi universellement disponible, ca fait partie de la culture de base des utilisateurs, et ca gère assez bien les recalculs, les totaux, le formatage, les jolis graphiques.

    Quant à Excel, c'est juste le tableur le plus courant dans le monde pro. Ceci dit, les solutions CSV ci dessus fonctionneront avec d'autres tableurs, plus ou moins exotiques (voire, comme ce sont des fichiers textes, elles seront assez portables).

    Formater l'affichage ou produire un grand fichier texte à la façon des listings d'autrefois, ca ne sert que quand on a très peu d'informations à sortir, et qu'on veut les afficher à l'écran ou les imprimer, sans les retraiter après.

    Francois

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Citation Envoyé par fcharton Voir le message
    Bah, pour sortir et traiter des statistiques, le plus simple est d'utiliser un tableur, ca va vite, c'est quasi universellement disponible, ca fait partie de la culture de base des utilisateurs, et ca gère assez bien les recalculs, les totaux, le formatage, les jolis graphiques.

    Quant à Excel, c'est juste le tableur le plus courant dans le monde pro. Ceci dit, les solutions CSV ci dessus fonctionneront avec d'autres tableurs, plus ou moins exotiques (voire, comme ce sont des fichiers textes, elles seront assez portables).

    Formater l'affichage ou produire un grand fichier texte à la façon des listings d'autrefois, ca ne sert que quand on a très peu d'informations à sortir, et qu'on veut les afficher à l'écran ou les imprimer, sans les retraiter après.

    Francois
    Je comprend bien toute l'utilité que peut avoir le fait de sortir directement la trace sur un tableur, le fait n'est pas là...

    Le fait est que, bien que, par la suite, la demande de mehdi_me85 ait effectivement des chances de dériver vers la nécessité de pouvoir récupérer la trace dans un tableur (quelconque), sa question première porte sur le fait de formater le texte de manière à ce que les données soient représentées sous forme tabulaire, simplement de manière à pouvoir déterminer "facilement" si une information se trouve dans la première colonne, dans la deuxième ou dans la dixième.

    De plus, rien ne te permet d'affirmer à la base que la trace ait pour objectif au final d'être traitée d'un point de vue statistique, et, mieux encore, la demande de mehdi_me85 est de pouvoir avoir un affichage indépendant d'une IHM particulière.

    La solution qui semble en définitive la plus sensée est donc bel et bien de fournir un fichier texte à la façon des listings d'autrefois semble donc, jusqu'à preuve du contraire, être le résultat auquel mehdi_me85 veut arriver, et, par conséquent, c'est une solution permettant d'obtenir ce résultat qui doit être privilégiée, du moins à la base.

    Si, par la suite, mehdi_me85 vient à nous dire qu'il souhaite, effectivement, pouvoir récupérer la trace sur un tableur quelconque, il sera toujours temps de s'inquiéter du tableur cible et de lui indiquer le moyen le plus facile pour y arriver

    La remarque que j'ai faite est donc à prendre dans le sens de:
    La solution de fcharton te permettant de récupérer les données sous un tableur est une solution envisageable, mais qui ne correspond pas aux souhaits exprimés (ou pouvant être déduits en toute objectivité) par la demande

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Points : 85
    Points
    85
    Par défaut
    Bonjour,
    Merci pour vos réponses. Effectivement, je cherches juste à afficher des données dans un tableau pour un souci de lecture et de visibilité. Et donc; vos réponses me sembles largement suffisantes.

    Merci.

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

Discussions similaires

  1. [XL-2010] Afficher les résultats dans txtbox avec sélection combobox
    Par Sliver dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/11/2011, 18h15
  2. [MySQL] Afficher les données dans un tableau html horizontal avec une seule requête au lieu de 6
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/10/2010, 11h13
  3. parcourir une arrayList et afficher le résultat dans un tableau
    Par the watcher dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 10/09/2010, 09h35
  4. [MySQL] Affiche les resultats dans un tableau
    Par beaf05 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/10/2008, 17h11
  5. Réponses: 2
    Dernier message: 06/04/2007, 16h35

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