Bonjour,

Je n'arrive pas à comprendre pourquoi mon code me retourne une erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
	Set fichPref=fso.OpenTextFile(PathFichParam&"\preferes.ini",ForReading) 'Ouvre preferes.ini
 
	Do Until fichPref.AtEndOfStream
		strTemp = fichPref.readline
		If Ucase("IP") = Ucase(Split(StrTemp,"=",2,1)(0)) Then
			AdrIp = Ucase(Split(StrTemp,"=",2,1)(1))
		End if
Voici le fichier :

Intitule=Bonjour comment ça va
IP=192.168.5.41
Masque=255.255.255.0
Passerelle=192.168.5.1
DNS1=...
DNS2=...


Normalement, d'après ce que j'ai compris du tutoriel de Bill, Split "éclate" une chaîne de caractère, ce qui donne :

SPLIT(IP=192.168.5.41,"=",2, 1)(0))

Cette ligne renvoie : IP
n'est ce pas ?

Donc ci dessous, elle devrait renvoyer : 192.168.5.41

SPLIT(IP=192.168.5.41,"=",2, 1)(1))


En rouge c'est le nombre de sous chaînes renvoyé par la commande de Split, donc ici deux sous chaînes.
et 1 c'est la valeur de comparaison, ici on compare de chaînes textuelles.

Je n'arrive pas à trouver mon erreur selon laquelle j'utilise des indices en dehors de la plage.

Ce que je ne comprend pas de plus, c'est que ce script là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Dim AdrIP
If Ucase("IP") = Ucase(Split("IP=192.168.5.41","=",2,1)(0)) Then
	AdrIp = Ucase(Split("IP=192.168.5.41","=",2,1)(1))
End if
msgbox AdrIp
Fonctionne parfaitement et me renvoie bien l'ip

Merci pour votre aide