guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009
-
17 juil. 2009 à 09:59
guillaumeIA
Messages postés12Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 3 septembre 2009
-
20 juil. 2009 à 08:18
Bonjour,
J'aimerai trouver une solution a mes problèmes qui est le suivant:
Je possède une fichier ini avec l'adresse ip a 6 nombres xxx.xxx.xx.xxx.x.x
Je ne peu pinguer que sur les 4 premier nombres.
j'aimerais récupérer cette adresse ip du fichier ini, cela ça marche dans mon programme et tronquer cette variable pour récupérer "xxx.xxx.xx.xxx"
voila mon code: " je pars ans l'optique que mon ip a été tronquer pour ce code"
fichier ini: [ConfigurationLogiciel]
ip_adresse= 169.xxx.xx.xxx
' ping de l'adresse ip de l automate pour verifier qu'il est bien connécté
ip_adresse = PageParam.LireINI("ConfigurationLogiciel", "ip_adresse")
If ip_adresse.ToString = "" Then
MsgBox("contrôler l'adresse ip de la passerelle.")
Else
Dim value As Boolean = My.Computer.Network.Ping("ip_adresse") 'voir second problème à ce niveau
If value Then
MsgBox("Server pinged successfully.")
Else
MsgBox("Ping request timed out.")
End If
End If
Mon second problème:
Dans cette ligne de codes suivante Dim value As Boolean = My.Computer.Network.Ping("169.xxx.xx.xxx") , le ping marche uniquement si je saisis manuellement l'adresse ip par contre si je ramène cette ip du fichier ini via une variable alors
une erreur ping exception apparait. Dim value As Boolean = My.Computer.Network.Ping("ip_adresse")
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 juil. 2009 à 14:48
Salut
Pas clair du tout.
Tu nous dit avoir une série de 6 chiffres dans un fichier INI et l'exemple que tu donnes n'en a que 4.
Que faut-il comprendre ?
Quelle est ta question ?
Si tu récupères 6 chiffres séparés par 5 points, la solution que je verrais serait :
- Faire un Split de la chaine totale en utilisant le point comme séparateur
- Tu obtiendras alors un tableau de 0 à 5
- Redimensionne ton tableau de 0 à 3, ce qui aura pour effet de perdre les deux derniers termes
- Faire un Join pour recréer la chaine des 4 chiffres
Pour ta deuxième question, la réponse est évidente :
Dans Ping("ip_adresse"), "ip_adresse" est ici un texte, ce n'est pas la variable
--> Ping(ip_adresse.ToString)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 17 juil. 2009 à 15:23
Bonjour,
Ce que je comprends c'est que tu souhaite faire
[xxx.xxx.xx.xxx].x.x
--> Récupérer uniquement ce qui est entre les crochets.
Bien entendu, la position des crochets serait à établir, et le nombre de x varie entre 0 et 3 (ou 1 et 3)
Je te propose de travailler avec un RegExp (cela peut certainement se faire avec des fonction de 'Strings' mais j'aime tellement le RegExp ^^)
Bien entendu il faut faire l'import qui va bien (Projet/references/Microsoft VB Script Regular Expression 5.0)
Admetant que ton IP d'origine soit contenu par la variable string IP_o(_o comme original) et qu'on veuille que la nouvelle soit contenu dans IP_n (_n comme new)
Dim IP_n As String
Dim RE As New RegExp ' instantiation du RegExp
RE.MultiLine = False
RE.IgnoreCase = True
RE.Pattern = ".."
'Dans un premier temps, dire que '..' équivaut à un '.0.'
IP_n = RE.Replace(IP_o, ".0.")
'Dans un second temps, isoler les 4 premiers groupes de chiffres
RE.Pattern = "([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})"
Dim MC As MatchCollection ' instantiation du resultat pour RegExp
Set MC = RE.Execute(IP_n)
If (MC.Count > 0) Then
IP_n = MC(0)
Else
'il y a un problème, on a pas trouvé
'--> gestion d'erreur si besoin
End If
je l'ai pas testé, je te laisse le faire
VB6, quand yen a plus yen a encore
Il y a tant a apprendre et seulement 24 heures dans une journée