Bonjour,
J'ai défini les define suivantPour ne changer la taille d'un message qu'à un endroit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #define taille_max_msg 1976 #define taille_max_msg_03 1582
Avant nous avions le code suivant.
Que j'ai transformé ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fprintf(fic_messages, "%13s%02s%-1976s\n", msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg);
Bien évidemment cela ne donne pas le même résultat, je devais dormir quand j'ai écrit ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fprintf(fic_messages, "%13s%02s%-taille_max_msgs\n", msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg);
Maintenant la question est comment obtenir le même résultat, avec quelque chose d'élégant et de lisible
J'ai pensé à ceci, mais je trouve cela, pas très lisible.
Avez vous une autre idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char format[100]; strcpy(format,"%13s%02s%-"); strcat(format,itoa(taille_max_msg)); strcat(format,"s\n"); fprintf(fic_messages, format, msg_ts.wmsg_ven_num, msg_ts.wmsg_msg_typ, msg_ts.wmsg_msg_msg);
PS : Je sais que itoa n'est pas standard, mais il existe dans mon application.
Cordialement
soazig
Partager