Comment remplacer les "\" dans un "string"

Signaler
Messages postés
9
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
14 avril 2008
-
Messages postés
223
Date d'inscription
mercredi 31 mai 2006
Statut
Membre
Dernière intervention
5 mai 2014
-
Bonjours,
Je développe une petite application de gestion d’employés avec une base de données MySQL. Pour enregistrer l’image de l’employé j’enregistre l’adresse de l’image. Le souci est que si je veux enregistré la photo dans la BDD je dois changer les ‘/’ (slash) par des contres slash ‘\’. Pour le moment l’adresse de l’image est fixe alors je procède de cette façon :

Adresse de mon Image:C:\Image\G12.JPG

String CheminImage;
CheminImage= ECheminImage->Text.c_str();
                        CheminImage.Delete(3,1);     // delete 1 caractere a la position 3
                        CheminImage.Insert("/",3);   // insert un "/" en position 3
 
                        CheminImage.Delete(9,1);     // delete 1 caractere a la position 3
                        CheminImage.Insert("/",9);   // insert un "/" en position 3
 


J’aimerai que mon programme soit plus souple et qu’il s’adapte si je change l’adresse de l’image. J’aimerai savoir comment je peux scanner ma variable et changé les slashs dans une boucle.
Merci

4 réponses

Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

salut,
c'est simple en C vite fait

char * convertSlash(char *source)
{
  short taille = strlen(source);
  char *s = source;
  while (taille--)
  {
    if (*s == '/')*s='\\';
    s++;
  }
  return source;
}

pour info il existe pleins de fonctions de traitements de chaines, en plus si je me rappel bien en string tu as aussi!!

ciao
Messages postés
9
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
14 avril 2008

tu connais des fonctions en C++ pour faire la meme chose ? je test avec SubString() mais je pense pas etre sur le bonne piste.
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

string::size_type i = 0;
while ((i = str.find('/', i)) != (string::size_type)(-1))
str.replace(i++, 1, _T("\" ));

en C++
Messages postés
223
Date d'inscription
mercredi 31 mai 2006
Statut
Membre
Dernière intervention
5 mai 2014

/***********************************************************************************************/
/* Fonction (récursive) qui supprime les caractères 'Car' contenus dans la chaine 'Chaine' */
/***********************************************************************************************/
void SupprimerCar(char Chaine[], char Car)
{
 int i = 0;
 int IndicePremierCar = -1;
 while((i < (int)strlen(Chaine)) && (IndicePremierCar == -1))
 {
  if(Chaine[i] == Car) IndicePremierCar = i;
  i++;
 }
 if(IndicePremierCar > -1)
 {
  for(i = IndicePremierCar ; i < ((int)strlen(Chaine) - 1); i++)
   Chaine[i] = Chaine[i + 1];
  Chaine[(int)strlen(Chaine) - 1] = '\0';
  SupprimerCar(Chaine, Car);
 }
}