Problème avec un fichier externe pour mes variables

Problème avec un fichier externe pour mes variables - VB/VBA/VBS - Programmation

Marsh Posté le 08-03-2007 à 11:24:52    

Bonjour,
 
J'utilise un script pour modifier mes IPs. Celui-çi marche très bien sauf que maintenant, j'essaye de le modifier pour mettre les données de mes variables dans un fichier txt.
 
Je dosi mal m'y prendre, ce dernier ne marche pas.
 
Merci de m'aider? voci le code :
 

Code :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" _
  3.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
  4.  ' --------------- Mettre l'adresse MAC de la carte réseau que vous souhaitez modifier --------------- '
  5.     ' ---------------             ici : 00:0A:E6:02:23:8F                --------------- '
  6. Set colNetAdapters = objWMIService.ExecQuery _
  7.     ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True AND MACAddress like '%00:10:4B:41:71:3C'" )
  8. Dim strIPAddress, strSubnetMask, strGateway, strGatewayMetric    ' Déclaration des variables
  9.  Open "PARAMTCP.ini" For Input As #1                   ' Ouvre le fichier en lecture.
  10. Do While Not EOF(1)                             ' Effectue la boucle jusqu'à la fin du fichier.
  11.  Line Input #1, strIPAddress, strSubnetMask, strGateway, strGatewayMetric    ' Lit les données dans 4 variables.
  12. Loop
  13. Close #1    ' Ferme le fichier.
  14. 'strIPAddress = Array("10.40.29.39" )        'Saisir Adresse IP (ex: 10.40.29.39)'
  15. 'strSubnetMask = Array("255.255.252.0" )      'Saisir Masque de sous-réseau (ex: 255.255.252.0) '
  16. 'strGateway = Array("10.40.28.1" )         'Saisir Paserelle par défaut (ex: 10.40.28.1)'
  17. 'strGatewayMetric = Array(1)
  18. For Each objNetAdapter in colNetAdapters
  19.     errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
  20.     errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
  21.     If errEnable = 0 And errGateways = 0 Then
  22.         WScript.Echo "L adresse IP et la passerelle ont ete changee."
  23.     Else
  24.         WScript.Echo "L adresse IP et la passerelle n ont pas pu etre changee"
  25.     End If
  26. Next


Message édité par Kayanwan le 08-03-2007 à 14:05:05

---------------
www.pixelyoz.com - www.eyeofworld.pixelyoz.com - www.emotionofday.pixelyoz.com - www.footproject.pixelyoz.com
Reply

Marsh Posté le 08-03-2007 à 11:24:52   

Reply

Marsh Posté le 08-03-2007 à 14:18:59    

up

Reply

Marsh Posté le 08-03-2007 à 18:25:29    

Code :
  1. Do While Not EOF(1)
  2. ' Effectue la boucle jusqu'à la fin du fichier.
  3. Line Input #1, strIPAddress, strSubnetMask, strGateway, strGatewayMetric    ' Lit les données dans 4 variables.
  4. Loop
  5. Close #1    ' Ferme le fichier.

[/quotemsg]
 
il a deja marche ton line input avec 4 variables ?
 
ce n'est pas plutot
Input #1, strIPAddress, strSubnetMask, strGateway, strGatewayMetric
 
c'est peut etre que j'utilise le vba d'excel
je sais pas ce qu'il faut comprendre par script


Message édité par ingenieurcesi le 08-03-2007 à 18:40:29
Reply

Marsh Posté le 09-03-2007 à 09:25:52    

Ça serait possible d'avoir plus d'informations que « ce dernier ne marche pas. » ?
Un code d'erreur, un exemple de mauvais résultat ?

Reply

Marsh Posté le 12-03-2007 à 17:23:04    

Pour faire plus simple :
 
Voici le code qui marche parfaitement :
 

Code :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" _
  3.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
  4.  ' --------------- Mettre l'adresse MAC de la carte réseau que vous souhaitez modifier --------------- '
  5.     ' ---------------             ici : 00:0A:E6:02:23:8F                --------------- '
  6. Set colNetAdapters = objWMIService.ExecQuery _
  7.     ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True AND MACAddress like '%00:10:4B:41:71:3C'" )
  8. strIPAddress = Array("10.40.29.39" )       'Saisir Adresse IP (ex: 10.40.29.39)'
  9. strSubnetMask = Array("255.255.252.0" )      'Saisir Masque de sous-réseau (ex: 255.255.252.0) '
  10. strGateway = Array("10.40.28.1" )         'Saisir Passerelle par défaut (ex: 10.40.28.1)'
  11. strGatewayMetric = Array(1)
  12. For Each objNetAdapter in colNetAdapters
  13.     errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
  14.     errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
  15.     If errEnable = 0 And errGateways = 0 Then
  16.         WScript.Echo "L adresse IP et la passerelle ont ete changee."
  17.     Else
  18.         WScript.Echo "L adresse IP et la passerelle n ont pas pu etre changee"
  19.     End If
  20. Next


 
 
J'aimerais depuis ce code, mettre les valeurs de mes variables strIPAddress, strSubnetMask, strGateway et strGatewayMetric dans un fichier pour pouvoir rendre ce code plus facilement utilisable pour differente machine.
 
On aurait seulement à modifier les valeurs dans un fichier au lieu de modifier directement dans la source.
 
Merci de votre aide.

Reply

Marsh Posté le 13-03-2007 à 10:41:09    

up

Reply

Marsh Posté le 16-03-2007 à 11:23:04    

tegu a écrit :

Ça serait possible d'avoir plus d'informations que « ce dernier ne marche pas. » ?
Un code d'erreur, un exemple de mauvais résultat ?


 
La seule erreur que j'ai c'est : Error (L13 col28)
 
L'erreur se positionne devant le FOR

Reply

Marsh Posté le 16-03-2007 à 13:18:52    

Après réflexion, ton problème vient sans doute de 2 choses.
 
1/ L'utilisation d'une liste de variables pour la lecture de données dans un fichier n'est valable qu'avec « Input # ». Ni « Input », ni « Line Input » (cf. aide en ligne sur ces fonctions). Il faut que tu adaptes ton code ou le format de ton fichier texte en conséquence.
 
2/ Ensuite dans ton exemple qui fonctionne, les variables sont initialisées avec un tableau et pas une simple valeur

strIPAddress = Array("10.40.29.39" )

strIPAddress contient un tableau (un élément) et pas un String !
Tu dois faire pareil ; donc une fois que tu as les valeurs récupérées dans ton fichier texte il te faut initialiser des tableaux pour les utiliser avec objNetAdapter.
 
En gros, pour l'adresse IP, tu la lis dans le fichier texte et tu la stockes dans une variable « sIP », puis tu fais : strIPAddress = Array(sIP)
Pareil pour le reste.
 
J'espère qu'il n'est pas trop tard :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed