Bonjour,
Je cherche a faire une fonction pour récupérer la fin d'une url
par exemple:
CString url = " www.developpez.net/test.zip";
je souhaiterai recuperer la chaine de caractère après le dernier /
donc ici recuperer "test.zip"
Bonjour,
Je cherche a faire une fonction pour récupérer la fin d'une url
par exemple:
CString url = " www.developpez.net/test.zip";
je souhaiterai recuperer la chaine de caractère après le dernier /
donc ici recuperer "test.zip"
WinHttpCrackUrl ?
Pas très portable (Microsoft) mais efficace
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbe Un logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
apparemment c'est ce qui me conviendrai mais j'arrive a comprendre comment l'utiliser , même en regardant la documentation de msdn
tu lui passes en entrée ta chaine, la longueur de la chaine, des flags, un pointeur sur une structure URL_COMPONENTS (il faut renseigner la taille avant l'appel). Si le code de retour est bon, la structure URL_COMPONENTS contient les différents champs de ton url
tien, un petit exemple d'une classe à moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 bool ParseUrl(MCR_CSTR Url, CString & ServiceType, CString & Server, CString & Object, MCR_U2 & Port) { // initialize the returned data ServiceType = EMPTY_STR; Server = EMPTY_STR; Object = EMPTY_STR; Port = 0; // Initialize the URL_COMPONENTS structure. URL_COMPONENTS urlComp; memset(&urlComp, 0, sizeof(urlComp)); urlComp.dwStructSize = sizeof(urlComp); // Set required component lengths to non-zero so that they are cracked. urlComp.dwSchemeLength = -1; urlComp.dwHostNameLength = -1; urlComp.dwUrlPathLength = -1; // parse the URL if(WinHttpCrackUrl(Url, _tcslen(Url), 0, & urlComp) == FALSE) { ERREUR(L"An error in WinHttpCrackUrl()"); ASSERT(FALSE); return false; } // return the values Port = urlComp.nPort; // get the scheme if(urlComp.dwSchemeLength != 0) { ServiceType = CString(urlComp.lpszScheme, urlComp.dwSchemeLength); } // get the server if(urlComp.dwHostNameLength != 0) { Server = CString(urlComp.lpszHostName, urlComp.dwHostNameLength); } // get the url if(urlComp.dwUrlPathLength != 0) { Object = CString(urlComp.lpszUrlPath, urlComp.dwUrlPathLength); } return true; }
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbe Un logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Je dis peut etre une betise mais si tu veux recupere juste ce qu'il y a avant / dans une URL tu peux facilement le faire uniquement avec les methode de la classe CString.
Tu fais une recherche du caractere "\" avec la fonction ReverseFind et apres tu decoupes la chaine a partir du caractere qui t'interresse avec Mid() ou Right() par exemple.
Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
N'hésitez pas à me contacter par MP.
merci
mais j'ai un problème si j'ai
http://www.developpez.net/forums/blabla/test.exe
Object = CString(urlComp.lpszUrlPath, urlComp.dwUrlPathLength);
Object me recupere "/forums/blabla/test.exe"
alors que je voudrais que test.exe
Tu as essayé juste en manipulant des CString ?
Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
N'hésitez pas à me contacter par MP.
oui ,
mais avec Right , il faut précisé le nombre de caractère qu'on veut prendre et je voudrais éviter cela , je souhaiterai que sa prenne tous les caractères après le dernier "/"
Quelque chose comme cela fonctionne ou pas ?
J'ai pas testé le code mais avec quelque ajustement cela devrait fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CString url = "www.developpez.net/test.zip"; CString EndUrl = url.Mid(url.ReverseFind('/')+1);
Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
N'hésitez pas à me contacter par MP.
ah ben oui
j'avais trouvé une autre solution entre temps
mais ta méthode est beaucoup mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CString url = "www.developpez.net/test.zip"; CString split; int lengh = url.Getlengh(); // on récupère la longueur int find = url.ReverseFind('/'); split = url.Right( lengh - find - 1);
Je vous remercie
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager