Saut de ligne ??? Variable Registre - Info Bulle (Balloon Tips)

Résolu
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009 - 9 juin 2006 à 15:56
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009 - 28 juil. 2006 à 22:23
Bonjour,

Je développe un petit utilitaire destiné à afficher des Balloon Tips.
Les messages de ces balloon Tips sont récupérer dans des valeurs de la base de registre de Windows.

Mon problème est que j'aimerais gérer au mieux les sauts de ligne (ce que je n'arrive pas aujourd'hui).
Pour ce faire j'aimerais savoir si quelqu'un peut me donner un moyen simple et efficace d'arriver à gérer ces sauts de lignes.

Par exemple : si dans ma valeur de registre "Message" j'insère le texte "test \n test2", je souhaiterais que la chaine "test2" soit insérer après un saut de ligne.

Est ce quelqu'un à une solution à m'offrir ?

Cordialement,

Drkns

6 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
9 juin 2006 à 20:35
Remplace '\n' par '\r\n'. (Je pense que c'est ce qu'eRoZion a voulu dire, mais c'est plus comprehensible avec des lettres ;)

+2(p - n)
3
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
9 juin 2006 à 22:25
C'est ça AlexMAN, je suis tellement habitué à l'écrire comme ça que j'ai pas pensé à donner l'équivalence.

\r -> \x0D
\n -> \x0A

Bon au moins je sais que ça marche aussi pour les info-bulles maintenant. ;)

eRoZion
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 juin 2006 à 18:49
Et bien je sais pas si c'est la meilleur solution mais tu peut essayer de récupérer la valeur de la clé dans un buffer pour analyser lettre par lettre. Tu peut faire par exemple:

void Exemple (char *value)
{
    char tempbuffer[256];
    int pos = 0;

    if(value == 0)
        return;

    while((value[pos] != '\n') && (value[pos] != 0))
    {
       tempbuffer[pos] = value[pos];
       pos++;
    }
    tempbuffer[pos] = 0;
  
    MessageBox(0, tempbuffer, "Test", 0);
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
9 juin 2006 à 19:30
Salut,

Essaie de remplacer ton \n par \x0D\x0A , si ca marche pas par \x0D , et enfin si ca marche toujours pas par \x0A.
Je dis ca comme ça j'ai jamais essayé mais à mon avis ca devrait solutionner ton problème.

Tiens-nous au courant.

A+

eRoZion
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009
9 juin 2006 à 22:23
Effivement AlexMAN,

Bien vu j'y avais pensé mais tu à confirmé ma piste.

Pourtant, je souhaite complèter cette reponse afin d'apporter une precision sur le resultat.

Il est à noter que cette solution n'est applicable qu'en utilisant une clé de type REG_MULTI_SZ
Donc suite à la creation de cette clé REG_MULTI_SZ, il faudra inserer des valeurs 0A 00 (eqvalent à \n) pour generer les sauts de lignes dans la chaine.

Ensuite effectivement comme precisé il suffit de renvoyer le buffer recuperer vers le Balloon Tips.

Merci à tous de votre aide !

Cordialement,

Drkns
0
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009
28 juil. 2006 à 22:23
Merci a tous

Et merci a particulièrement 107387 eRoZion et =22790 AlexMAN

@+

Drkns
0
Rejoignez-nous