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 :

affichage d'un tableau avec des colonnes fixes


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 21
    Points : 13
    Points
    13
    Par défaut affichage d'un tableau avec des colonnes fixes
    Bonjour,

    voila je dois afficher un tableau de trois colonnes avec une largeur fixe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1 - France      | 2 - Polynésie Fr| 3 - Allemagne  |
                    |                 |                |

    En fait je dois afficher quelque chose comme ca

    si la chaine est trop longue elle doit etre coupée et sinon l'espace doit etre completé pour avoir des colonnes de taille fixe

    pour l'instant j'utilise ce code mais les champs font bien au maximum 15 caractères mais si la chaine n'est pas assez longue tout est décalé.
    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
    for(i=0;i<numberOfRows;i=i+3){
    		rows[i] = mysql_fetch_row(res);
    		rows[i+1] = mysql_fetch_row(res);
    		rows[i+2] = mysql_fetch_row(res);
    		if(rows[i] != NULL){
    			printf("%d - %-.15s",i+1,rows[i][1]);
    		}
    		else
    			break;
    		printf(" | ");
    		if(rows[i+1] != NULL)
    			printf("%d - %-.15s",i+2,rows[i+1][1]);
    		else
    			break;
    		printf(" | ");
    		if(rows[i+2] != NULL)
    			printf("%d - %-.15s",i+3,rows[i+2][1]);
    		else
    			break;
    		printf(" |\n");
     
    	}
    Ca donne quelque chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1 - South Africa | 2 - Central African | 3 - France |
    4 - French Guiana | 5 - French Polynesi | 6 - French Southern |
    Merci d'avance pour votre aide

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut

    c'est très simple !

    il faut rajouter des espaces si nécessaire

    regarde ce code


    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
    #include <stdio.h>
    #include <string.h>
     
    #define LARGEUR_COLONNE 10
     
     
    void afficher(char *s) {
        char buf[LARGEUR_COLONNE+3];
        int i;
     
        buf[LARGEUR_COLONNE] = ' ';
        buf[LARGEUR_COLONNE+1] = '|';
        buf[LARGEUR_COLONNE+2] = 0;
     
        int l = strlen(s);
        if (l >= LARGEUR_COLONNE) {
            memcpy(buf,s,LARGEUR_COLONNE);
        }
        else {
            memcpy(buf,s,l);
            for (i = l; i < LARGEUR_COLONNE; i++) {
                buf[i] = ' ';
            }
        }
        printf(buf);
    }
     
    int main() {
        afficher("un mot");
        afficher("un mot plus long");
        afficher("un mot encore plus long");
        printf("\n");
        afficher("2ieme ligne");
        afficher("deuxieme ligne");
        afficher("fin");
        printf("\n");
    }

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jbaudens Voir le message
    Bonjour,

    voila je dois afficher un tableau de trois colonnes avec une largeur fixe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1 - France      | 2 - Polynésie Fr| 3 - Allemagne  |
                    |                 |                |

    En fait je dois afficher quelque chose comme ca

    si la chaine est trop longue elle doit etre coupée et sinon l'espace doit etre completé pour avoir des colonnes de taille fixe

    pour l'instant j'utilise ce code mais les champs font bien au maximum 15 caractères mais si la chaine n'est pas assez longue tout est décalé.
    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
    for(i=0;i<numberOfRows;i=i+3){
    		rows[i] = mysql_fetch_row(res);
    		rows[i+1] = mysql_fetch_row(res);
    		rows[i+2] = mysql_fetch_row(res);
    		if(rows[i] != NULL){
    			printf("%d - %-.15s",i+1,rows[i][1]);
    		}
    		else
    			break;
    		printf(" | ");
    		if(rows[i+1] != NULL)
    			printf("%d - %-.15s",i+2,rows[i+1][1]);
    		else
    			break;
    		printf(" | ");
    		if(rows[i+2] != NULL)
    			printf("%d - %-.15s",i+3,rows[i+2][1]);
    		else
    			break;
    		printf(" |\n");
     
    	}
    Ca donne quelque chose comme ca :
    1 - South Africa | 2 - Central African | 3 - France |
    4 - French Guiana | 5 - French Polynesi | 6 - French Southern |

    Merci d'avance pour votre aide
    Il me semble que "%-.15s" demande à ce que la chaîne soit tronquée sur 15 car. mais ne fait rien si la chaîne est plus courte.
    Faut que tu joues avec les formatages de complétion style "%15s" ou "%-15s"
    Evidemment tu peux mixer les deux => "%15.15s" ou "%-15.15s"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    merci pour vos reponses

    en utilisant %-15.15s ca marche

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

Discussions similaires

  1. Tableau avec des colonnes redimensionnable
    Par manu_b dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/09/2012, 12h21
  2. DBGRID avec des colonnes fixes
    Par tijani dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/12/2009, 10h51
  3. Un tableau avec des colonnes dynamiques
    Par Cronycs dans le forum Struts 1
    Réponses: 5
    Dernier message: 07/06/2007, 13h38
  4. Réponses: 7
    Dernier message: 22/09/2006, 15h52
  5. [CSS] Remplacer un tableau avec des colonnes
    Par mullger dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 22/08/2006, 15h30

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