Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
968 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème avec un fichier externe pour mes variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec un fichier externe pour mes variables

n°1525740
Kayanwan
Pixelyoz
Posté le 08-03-2007 à 11:24:52  profilanswer
 

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
mood
Publicité
Posté le 08-03-2007 à 11:24:52  profilanswer
 

n°1525809
Kayanwan
Pixelyoz
Posté le 08-03-2007 à 14:18:59  profilanswer
 

up

n°1526003
ingenieurc​esi
Posté le 08-03-2007 à 18:25:29  profilanswer
 

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
n°1526152
tegu
Posté le 09-03-2007 à 09:25:52  profilanswer
 

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

n°1527485
Kayanwan
Pixelyoz
Posté le 12-03-2007 à 17:23:04  profilanswer
 

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.

n°1527731
Kayanwan
Pixelyoz
Posté le 13-03-2007 à 10:41:09  profilanswer
 

up

n°1529396
Kayanwan
Pixelyoz
Posté le 16-03-2007 à 11:23:04  profilanswer
 

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

n°1529461
tegu
Posté le 16-03-2007 à 13:18:52  profilanswer
 

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 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème avec un fichier externe pour mes variables

 

Sujets relatifs
Suggestion: Ajouter un "Copier et renommez fichier existant en .old"problème php avec nuked clan
Lire un fichier txt ligne par ligneEditeur actionscript externe
[VBA WORD] ouverture d'un fichier selon un templateSQlite + Python: Problème de "CREATE TABLE IF NOT EXISTS"
Envoie de fichier encodé en URLEncodeRécupération d'n fichier par FTP
fichier en vbproblème avec l'utilisation d'un StateEdit
Plus de sujets relatifs à : Problème avec un fichier externe pour mes variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR