Méthode semblable à CString.Format(...)

Résolu
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 21 févr. 2007 à 09:51
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 21 févr. 2007 à 15:39
Bonjour,

Je voudrais implémenter une méthode semblable à la méthode CString.Format(). Celle-ci accepterait les même arguments et appelerait donc la méthode CString.Format() dans son corps.

Un petit exemple de ce dont à quoi je pense:
void Method(PCXSTR str, ...)
{
    CString text = str.Format(...);
    /* corps */
}

Appel de la méthode par : Method("test: %s", strValue);

Je ne sais pas quoi mettre dans les ...

Merci à vous et bonne journée,

Billou_13

Bask En Force


--------------------------------------------------------------------

Connaître la réponse est une chose, savoir pourquoi en est une autre

---------------------

3 réponses

acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
21 févr. 2007 à 10:47
salut

je pense que celà pourra t'aider

http://www.cplusplus.com/reference/clibrary/cstdio/vsprintf.html

même si en C++ il doit sûrement y avoir d'autres moyens

a+
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 févr. 2007 à 14:24
Le paradigme en C pour cela est :

#include <stdio.h>
#include <stdarg.h>
#include <string.h>

void Method(LPCTSTR str, ...)
{
      char buffer[1024];
      va_list v;
      va_start(v,  str);
      vsprintf(buffer, str, v);
      va_end(v);

      CString text((const char*)buffer);
      
      // text est formaté 
}
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
21 févr. 2007 à 15:39
Merci pour vos réponses, c'est exactement cela que je cherchais.

Bonne journée,


Billou_13

Bask En Force


--------------------------------------------------------------------

Connaître la réponse est une chose, savoir pourquoi en est une autre

---------------------
0
Rejoignez-nous