Ajouter des slash

cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 - 26 sept. 2002 à 09:57
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 - 30 sept. 2002 à 16:14
SAlut,

je recupere une chaine de caractere qui correspond au PATH d'un fichier, ensuite je souhaite l'utiliser comme variable, mais le probleme c que le path contient un "" et pour qu'il soit interpreter en varible il en fo 2 "\" donc voila en resumé le pb :

char * variable = "C:\MonSite\image\livre\doc1.htm"

je ve transformer cette variable en
"C:\\MonSite\\image\\livre\\doc1.htm" pour qu'elle soit interpeter comme une chaine de caractere, car avec un seul "" il croit que j'utilise un truc genre "\n" ou des truc comme ça, mais il ne le prend pas en variable. Donc je souhaite savoir comment remplacer "" par "\" ds ma chaine. Je travail en C sous VC++. Merci d'avance

10 réponses

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
26 sept. 2002 à 10:39
-------------------------------
Réponse au message : Tu parcours la chaîne le_path et tu comptes les slash (par ex il y en a n)
Tu fais une alloc dynamique de n+strlen(le_path)Ensuite tu fais une boucle for et tu remplis 1 à 1 les caractères dans ta nouvelle chaîne. Dès que tu rencontres un slash, tu en colles un deuxième immédiatement après.
-------------------------------

SAlut,

je recupere une chaine de caractere qui correspond au PATH d'un fichier, ensuite je souhaite l'utiliser comme variable, mais le probleme c que le path contient un "" et pour qu'il soit interpreter en varible il en fo 2 "\" donc voila en resumé le pb :

char * variable = "C:\MonSite\image\livre\doc1.htm"

je ve transformer cette variable en
"C:\\MonSite\\image\\livre\\doc1.htm" pour qu'elle soit interpeter comme une chaine de caractere, car avec un seul "" il croit que j'utilise un truc genre "\n" ou des truc comme ça, mais il ne le prend pas en variable. Donc je souhaite savoir comment remplacer "" par "\" ds ma chaine. Je travail en C sous VC++. Merci d'avance
0
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
26 sept. 2002 à 11:10
euhh ouais mais c plus facile a dire qu'a faire ... la je vois pas trop comment tu ve t'y prendre parceque fo remmettre la même chaine ds la nouvelle variable alloué, donc sa suppose qu'on a memorise ce qu'il y'a entre les "" ça risque d'être sacrement complexe ton truc. Tu pe me montrer vite fé ce a koi tu pense ?
Merci
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
26 sept. 2002 à 12:48
-------------------------------
Réponse au message : Je m'exprime peut-être mal mais ce n'est pas compliqué:
exemple:

#include <stdlib.h>
#include <string.h>

int main()
{
char *ton_path = "C:\Windows\Ton_fichier.cpp";
char *ton_path_refait;
int taille,i;
int nombre_slash=0;
int j=0;

for(i=0;i<strlen(ton_path)+1;i++) //calcul du nombre
if(ton_path[i]=='\') // de slashes
nombre_slash++;

taille=strlen(ton_path)+nombre_slash+1;
ton_path_refait=(char*)malloc(sizeof(char)*taille);

for(i=0;i<strlen(ton_path)+1;i++)
{
ton_path_refait[j]=ton_path[i];
j++;
if(ton_path[i]=='\')
{
ton_path_refait[j]='\';
j++;
}
}
ton_path_refait[taille-1]='\0'; //caractère NULL
}

Aux erreurs d'étourderie près c'est ça. J'ai pas testé mais ça a l'air correct

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

euhh ouais mais c plus facile a dire qu'a faire ... la je vois pas trop comment tu ve t'y prendre parceque fo remmettre la même chaine ds la nouvelle variable alloué, donc sa suppose qu'on a memorise ce qu'il y'a entre les "" ça risque d'être sacrement complexe ton truc. Tu pe me montrer vite fé ce a koi tu pense ?
Merci
0
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
26 sept. 2002 à 13:03
Merci trop cool gas, j'espere que ça va marcher
0

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

Posez votre question
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
26 sept. 2002 à 14:54
Merci de m'aider osi sur le forum de developpez.com lol ( cryptage simple ), j'ai pas bien compris l'exemple que tu m'as envoyé sur XOR, moi je ve pas mettre le pass ds un fichier. j'ai juste besoin de mofidier la variable en gardant le même nombre de caractere.
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
26 sept. 2002 à 15:11
-------------------------------
Réponse au message : je n'avais absolument pas remarqué que c'était toi sur developpez.com. Je ne me souviens plus de ta question. Si tu veux un tutoriel sur le cryptage XOR, tu envoies un mail
-------------------------------

Merci de m'aider osi sur le forum de developpez.com lol ( cryptage simple ), j'ai pas bien compris l'exemple que tu m'as envoyé sur XOR, moi je ve pas mettre le pass ds un fichier. j'ai juste besoin de mofidier la variable en gardant le même nombre de caractere.

-------------------------------
Réponse au message :
-------------------------------

Merci trop cool gas, j'espere que ça va marcher

-------------------------------
Réponse au message :
-------------------------------

-------------------------------
Réponse au message : Je m'exprime peut-être mal mais ce n'est pas compliqué:
exemple:

#include <stdlib.h>
#include <string.h>

int main()
{
char *ton_path = "C:\Windows\Ton_fichier.cpp";
char *ton_path_refait;
int taille,i;
int nombre_slash=0;
int j=0;

for(i=0;i<strlen(ton_path)+1;i++) //calcul du nombre
if(ton_path[i]=='\') // de slashes
nombre_slash++;

taille=strlen(ton_path)+nombre_slash+1;
ton_path_refait=(char*)malloc(sizeof(char)*taille);

for(i=0;i<strlen(ton_path)+1;i++)
{
ton_path_refait[j]=ton_path[i];
j++;
if(ton_path[i]=='\')
{
ton_path_refait[j]='\';
j++;
}
}
ton_path_refait[taille-1]='\0'; //caractère NULL
}

Aux erreurs d'étourderie près c'est ça. J'ai pas testé mais ça a l'air correct

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

euhh ouais mais c plus facile a dire qu'a faire ... la je vois pas trop comment tu ve t'y prendre parceque fo remmettre la même chaine ds la nouvelle variable alloué, donc sa suppose qu'on a memorise ce qu'il y'a entre les "" ça risque d'être sacrement complexe ton truc. Tu pe me montrer vite fé ce a koi tu pense ?
Merci

-------------------------------
Réponse au message :
-------------------------------

-------------------------------
Réponse au message : Tu parcours la chaîne le_path et tu comptes les slash (par ex il y en a n)
Tu fais une alloc dynamique de n+strlen(le_path)Ensuite tu fais une boucle for et tu remplis 1 à 1 les caractères dans ta nouvelle chaîne. Dès que tu rencontres un slash, tu en colles un deuxième immédiatement après.
-------------------------------

SAlut,

je recupere une chaine de caractere qui correspond au PATH d'un fichier, ensuite je souhaite l'utiliser comme variable, mais le probleme c que le path contient un "" et pour qu'il soit interpreter en varible il en fo 2 "\" donc voila en resumé le pb :

char * variable = "C:\MonSite\image\livre\doc1.htm"

je ve transformer cette variable en
"C:\\MonSite\\image\\livre\\doc1.htm" pour qu'elle soit interpeter comme une chaine de caractere, car avec un seul "" il croit que j'utilise un truc genre "\n" ou des truc comme ça, mais il ne le prend pas en variable. Donc je souhaite savoir comment remplacer "" par "\" ds ma chaine. Je travail en C sous VC++. Merci d'avance
0
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
26 sept. 2002 à 15:20
OK merci volontier ...
julien.pichot@freesbee.fr
0
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
27 sept. 2002 à 09:36
Ton prog ne marche pas gas, il ne ve absolument pas interpreter les "" ou '\' et la chaine lors du teste est equivalente a ça :

"C:WindowsTon_fichier.cpp"

donc pas de slash, je vois tj pas comment faire lol ...
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
27 sept. 2002 à 15:39
-------------------------------
Réponse au message : Autant pour moi il fallait faire
if(bidule == '\\') au lieu de if(bidule=='\')
Erreur d'étourderie de ma part
Si ça marche toujours pas, tu cherches le code ASCII de '\' et tu fais
if(bidule == code_ascii)...
-------------------------------

Ton prog ne marche pas gas, il ne ve absolument pas interpreter les "" ou '\' et la chaine lors du teste est equivalente a ça :

"C:WindowsTon_fichier.cpp"

donc pas de slash, je vois tj pas comment faire lol ...
0
cs_Mike Messages postés 70 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 24 juillet 2004 1
30 sept. 2002 à 16:14
SAlut Frere de Ville lol. En fé le truc marche tj po, mais j'ai pu trouve la solus sur un autre forum. Merci qd même. La solus etait un peu plus compliquer que ça. Par contre j'ai des pb mêmoire faudra que je t'en parle lol...
0
Rejoignez-nous