bonjour ,
je suis débutant en vb.net et j'ai une chaine qui contient un ip ex:
//192.168.0.1/aa/bb
je veux recuperer seulement ip avec n'importe quel ip ex peut etre :
//192.168.100.12/hh/dd
ou
//81.12.0.100/aa/bb
et(merci)
bonjour ,
je suis débutant en vb.net et j'ai une chaine qui contient un ip ex:
//192.168.0.1/aa/bb
je veux recuperer seulement ip avec n'importe quel ip ex peut etre :
//192.168.100.12/hh/dd
ou
//81.12.0.100/aa/bb
et(merci)
Salut,
utilise les fonctions de recherche de caractères de la classe string pour ne prendre qu'à partir du 3ème caractère (après le second slash),puis juqu'au prochains slash. C'est assez facile. Tu trouveras un très bon cours ici:
http://plasserre.developpez.com/v1-6string.htm
Manu
Tu peux aussi utiliser la fonction split qui sépare une chaine en fonction d'un caractère donné en un tableau de chaine. Il te reste ensuite à prendre le bon élément du tableau.
Griftou.
C'est aussi possible avec une expression rationnelle : Regex
il y a plusieurs approches possibles...
Avec un split :
(désolé s'il y a des erreurs de syntaxe, je ne suis pas VBiste...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim parts() as String = chaine.Split({"/"c}, StringSplitOptions.RemoveEmptyEntry) Dim ip as String = parts(0)
Ou avec une expression régulière :
(ou quelque chose dans ce gout là)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim r as new RegEx("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") Dim m as Match = r.Match(chaine) dim ip as string = m.value
EDIT: oula, je suis à la bourre
tomlev, t'as oublié une fonction récursive qui utilise substring
Griftou.
Merci je l'ai fait la voila :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Function ip(ByVal adrip As String) As String Dim adr As String = adrip Dim B As Char() = {"\\"} adr = adr.Trim(B) Dim adrssip As String For i As Integer = 0 To adr.Trim.Length - 9 adrssip = adrssip & adr(i) Next Return (adrssip) End Function
C'est loin d'être la meilleure solution... un split ou une regex aurait été plus propre à mon avis
Sinon j'ai une autre idée, qui relève un peu de la bidouille : tes chaines "//192.168.0.1/aa/bb" ressemblent étrangement à des URL, il manque juste la partie "scheme" ("http", "ftp" par exemple...). Or la classe Uri permet de décomposer une URL très facilement... donc il suffit de transformer ta chaine en URL et de récupérer le champ Host :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dim url as new Uri("http:" & chaine) dim ip as string = url.Host
Merci infiniment ce que je cherche mon amis.
j'ai pu le faire mais j'ai voulu comme cette fonction la. merci.
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