Patch()

cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 23 sept. 2003 à 21:06
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 23 sept. 2003 à 22:37
Je cherche un programme pour avoir le fichier avec l’extension.
J’en en avais trouvé un sur ce site, je ne le retrouve plus.
Le programme est très simple, dans les 6 lignes

Exemple :
C:\toto\titi.jpg or c:\\toto\\titi.jpg

Et je voudrai obtenir
Titi.jpg

(A la recherche perdu du Patch lol )
Merci

14 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2003 à 21:15
ben tu ne peux pas le reecrire ???
Pas besoin d'avoir invente l'eau tiede pour pondre cela.
BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 21:30
Ben c facile, tu prend un pointeur et tu parcour ta chaine à partir de la fin pour arrivé jusqu'au dernier '\' :

char *chemin="c:\\toto\\titi.jpg";
char *c = chemin;
while(*c) c++;
while(*c != '\\') c--;
strcpy(chemin, c+1);

voila, chemin se retrouve avec uniquement le nom du fichier
@+
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2003 à 21:34
Bravo Anacr0x mais si JCpp s'etait casse le 1/4 d'un neurone, aurait ete surement mieux pour lui.
BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 21:38
Sans doute, mais s'il pose la question, c'est qu'il ne sais pas bien se servir d'un pointeur... Moi aussi je comprennait pas tt au début et jme suis dit que le mieu était de lui montré comment faire au lieu de le laissé poirauter... De tte facon, qu'il trouve la réponse tte faite sur le forum ou que je lui donne ne change pas grand chose, maintenant il n'y a plus qu'as espéré qu'il é compris, sinon, il n'as qu'as demandé ce qu'il va pas, c'est des truc simple, mé ca parait pas forcément évident pour tt le monde
0

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

Posez votre question
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
23 sept. 2003 à 21:45
Merci
wé les pointeurs, je n'aime pas trop.

j'ai qd mm cherché et j'ai retrouvé:
http://www.cppfrance.com/code.aspx?ID=10788
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
23 sept. 2003 à 21:49
A vrai dire, je ne comprends pas tout
Un commentaire sur chaque ligne serrai le bien venu
merci
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 21:53
char *chemin="c:\\toto\\titi.jpg"; // Bon la, rien de spéciale, t'inscri le chemin
char *c = chemin; // La, tu pointe sur la variable contenant le chemin
while(*c) c++; // Tant qu'il y a des caractère, on avance (donc ca va a la fin)
while(*c != '\\') c--; // Tant qu'on a pas de '\\', on recule
strcpy(chemin, c+1); // La on copie la chaine a partir du pointeur (+1 pour ne pas avoir le '\\')

C bon ? ou faut-il d'autre précision ?
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
23 sept. 2003 à 21:57
En plus, ça ne fonctionne pas ce code

while(*c != '\') c--; error C2015: too many characters in constant

strcpy(chemin, c+1); error C2146: syntax error : missing ')' before identifier 'strcpy'
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 22:01
while(*c != '\\') c--; // il faut 2 '\'
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
23 sept. 2003 à 22:05
le pb n'est pas de là

j'ai mi :

char *chemin="c:\toto\titi.jpg";
char *c = chemin;
while(*c) c++;
while(*c != '\') c--;
strcpy(chemin, c+1);

et j'ai le même pb avec :

char *chemin="c:\\toto\\titi.jpg";
char *c = chemin;
while(*c) c++;
while(*c != '\\') c--;
strcpy(chemin, c+1);
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2003 à 22:11
char chemin[64];
strcpy(chemin, "c:\\toto\\titi.jpg"); // juste pour y mettre qqchose
char *c = chemin;
while(*c) c++;
while(*c != '\\') c--;
strcpy(chemin, c+1);

et va tout bon.
BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 22:11
excuse moi, jsui nul, jme sui gouré, fo metre un char[] pour initialisé le chemin, pas un char*
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
23 sept. 2003 à 22:19
OUFF!!! :-)

char chemin[1024] = "c:\\toto\\titi.jpg";
char *c = chemin;
while(*c) c++;
while(*c != '\\') c--;
strcpy(chemin, c+1);
MessageBox(0,chemin,"Patch",NULL);

Merci
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
23 sept. 2003 à 22:37
évite de mettre 1024 octet pour un chemin si tu le défini dès le départ, c'est du gachi

Comme la di BruNews, 64 octet est ici largement suffisant. Par contre, si le chemin changera par la suite, il faut prévoir une taille assez grande (comme tu vien de le faire)
0
Rejoignez-nous