Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
516 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème avec des chaînes en hexa

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec des chaînes en hexa

n°1756265
guigui94
Posté le 07-07-2008 à 12:20:58  profilanswer
 

Bonjour,
 
j'ai un petit problème.
Je dois insérer une chaîne en hexa dans la base de registre à partir d'une constante définie (avec la fonction RegSetValueEx).
Je dois donc convertir cette chaine :
hex:4e,5b,00,3c
en :
\x4e\x5b\x00\x3c
 
Le problème, c'est que mon str_replace maison n'est pas d'accord sur le remplacement de , par \x car il n'y a pas de caractère hexa derrière. J'ai essayé avec \\x mais le résultat n'est plus bon. Comment pourrais-je procéder autrement ?
 
Auriez vous une idée ?
Merci de votre aide.
 
Guigui.

mood
Publicité
Posté le 07-07-2008 à 12:20:58  profilanswer
 

n°1756290
Taz
bisounours-codeur
Posté le 07-07-2008 à 13:09:26  profilanswer
 

ton code

n°1756303
guigui94
Posté le 07-07-2008 à 13:36:37  profilanswer
 

#define KONFIGSTRING "hex:4e,56,43,52"
 
...
char * key = NULL;
key = (char*) malloc(strlen(KONFIGSTRING) * sizeof (char));
key = KONFIGSTRING;
//suppression du hex: initial
key = str_replace("hex:", "", key);
key = str_replace(",", "\x", key);
 
//la fonction replace
char *str_replace(char * t1, char * t2, char * t6)
{
     char*t4;
     char*t5= (char *)malloc( 0 );
 
     while(strstr(t6,t1))
        {
      t4=strstr(t6,t1);
      strncpy(t5+strlen(t5),t6,t4-t6);
      strcat(t5,t2);
      t4+=strlen(t1);
      t6=t4;
     }
     return strcat(t5,t4);
}
 
Merci de votre aide


Message édité par guigui94 le 07-07-2008 à 13:38:15
n°1756306
Taz
bisounours-codeur
Posté le 07-07-2008 à 13:40:01  profilanswer
 

ouah
 
t5 KO, rien alloué.
 
jolis noms de variables. ne t'étonnes pas que ça foire, c'est illisible.

n°1756310
Tarabiscot​e
Posté le 07-07-2008 à 13:46:39  profilanswer
 

Sinon pour ce que tu veux faire ce n'est pas possible.
La construction de la chaine "\x" est réalisé lors de la compilation et elle est donc incorrecte.
Alors que ta fonction str_replace c'est lors de l'exécution qu'elle fait sont boulot, donc trop tard.
 
PS: Un début de piste, convertir chaque nombre en entier avec strtol(), puis générer une chaine avec les valeurs obtenues.


Message édité par Tarabiscote le 07-07-2008 à 13:51:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème avec des chaînes en hexa

 

Sujets relatifs
MYSQLADMIN : problème de connexionProbleme Mise en page HTML et CSS
[Access] Probleme fonction Date() ... time()... Mid()...Problème avec l'étoile (*)
Probleme requete sql vba[Access] Problème VraiFaux dans un Etat
Problème affichage sous IE 6Probleme affichage + Boucle while
Problème avec les pointeurs (thread)Problème de mise en cache d'actions
Plus de sujets relatifs à : Problème avec des chaînes en hexa


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR