J'explique ce que je veux faire un peu mieux.
Je veux écrire une fonction qui trace un tableau en CLI.
Elle devra représenté un tableau de structure en un tableau.
Voici la structure d'exemple :
1 2 3 4 5
| typedef struct {
int id;
char nom[20];
char prenom[20];
}tuple; |
Supposons que j'ai un nom : Guillaume . Supposons aussi que la taille de la colonne nom est de 7, et la taille de la colonne prenom fait 7 aussi.
Le champ ID quand à lui fait 2 de large. Donc pour écrire 1 il faut écrire 01, ou bien ajouter un espace comme ceci " 1" ou "1 "
1 2 3 4 5 6
|
+----+---------+---------+
| ID | NOM | PRENOM |
+----+---------+---------+
| 01 | Guillau | Antoine |
+----+---------+---------+ |
Guillaume fait plus de 7 donc devra être coupé, Antoine lui fait 7 donc ne sera pas coupé.
Si je n'effectue pas ce traitement le tableau aura l'aire de ça :
1 2 3 4 5 6
|
+----+---------+---------+
| ID | NOM | PRENOM |
+----+---------+---------+
| 1 | Guillaume | Antoine |
+----+---------+---------+ |
Pour faire ceci c'est assez simple. Mais c'est simple parce que c'est un tableau à part. Je ferais le traitement pour toutes les cases dela colonne ID, puis pour toutes les cases de la colonnes Nom. Et justement je sais que la colonne ID est un int, ainsi que la colonne Nom est un string.
Maintenant j'envoie à ma fonction à tracer une autre structure :
1 2 3 4 5
| typedef struct {
int id_message;
int id_expediteur;
char contenu[200];
}tuple; |
La fonction plantera, car elle attendra de traiter un string en deuxième colonne, et non pas un int.
Il me faut donc écrire une autre fonction pour cette structure, et ainsi de suite...
Et ce que je veux faire, c'est justement d'automatiser la tache.
J'envoie à la fonction l'entete du tableau, le contenu qui sera insérer, ainsi que combien de ligne et combien de colonne possède le tableau.
Le reste la fonction s'en charge.
void traceTab(char **tete, tuple *contenu, int colone, int ligne);
Partager