IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Redondance a supprimer dans un tableau


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Redondance a supprimer dans un tableau
    Bonjour à tous !

    J'ai un .vbs qui récupère dans un fichier texte des adresses IP. Seulement, dans ce fichier texte il est possible qu'il y ai plusieurs fois la même adresse IP.

    Le problème et que si je les récupères, c'est pour faire un nslookup via le cmd dessus en automatique, voir un tracert, alors pour ne pas effectuer x fois la même manipulation, il faut que je trouve le moyen de virer les redondances dans ce tableau...

    Vous auriez une idée ?

    Voici ce que j'ai commancé mais une erreur apparait a la dernière boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    a = UBound(IpArray)
    for x = Lbound(IpArray) to a Step + 1
    	if IpArray(x) <> IpArray(a) then
    	for c = x + 1 to a Step + 1
    		if IpArray(x) = IpArray(c) then
    		msgbox "redondance !!"
    		for c = x + 1 to a Step + 1
    		IpArray(c) = IpArray(c+1)
    		next
    		end if
    	next
    	end if
    next

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Je l'ai modifié en ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    a = UBound(IpArray)
    for x = Lbound(IpArray) to a Step + 1
    	if x <> a then
    	for c = x + 1 to a Step + 1
    		if IpArray(x) = IpArray(c) then
    		msgbox "redondant"
    			for f = x + 1 to a Step + 1
    				if f <> a then
    					IpArray(f) = IpArray(f+1)
    				End if
    			next
    		end if
    	next
    	end if
    next
    Seulement, sa fonctionne a moitié... Bizard ou quoi ? sa m'enlève des doublons, mais d'autre non...

    Exemple: j'ai 16 ip dans tableau IpArray. Dont 11 redondante, il devrait m'en rester 5, mais il m'en garde 8..

  3. #3
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Bonjour,

    Je n'ai pas trop compris l'imbrication des 2 boucles (y a celle de la lecture du fichier?), mais je ne suis pas très sûr d'avoir cerné le problème.
    Juste que d'après ton énoncé, je verrais bien ce type de résolution, à faire pour chaque strReadIpAdress récupérée dans la lecture du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    boolIpIsPresent = False
     
    For Each strArrIpAddress in IpArray 
      If strReadIpAdress = strArrIpAddress Then
        boolIpIsPresent = True
        Exit For
      End If
    Next 
     
    If boolIpIsPresent = True Then
      Redim Preserve IpArray(Ubound(IpArray))
      IpArray(Ubound(IpArray) - 1) = strReadIpAdress 
    End If
    En espérant que ça réponde à tes besoins.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pluitôt qu'un tableau tu peu aussi utiliser un dictionnaire pour stocker ta liste d'adresses :
    http://tahe.developpez.com/web/vbscr...e=page_3#LII-R

    tu utilise l'adresse IP comme clef .. et avant chaque ajout tu utilise la méthode exisits pour tester l'existence de l'élément dans ton dico...

Discussions similaires

  1. Réglage interface pour bouton supprimer dans un tableau
    Par Popa_Cubede dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/07/2014, 09h18
  2. Savoir l'élément qui est supprimé dans un tableau
    Par sajodia dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/11/2010, 17h43
  3. Réponses: 1
    Dernier message: 24/04/2007, 17h20
  4. redondance dans un tableau
    Par romuluslepunk dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 12/06/2006, 17h59
  5. supprimer une ligne dans un tableau
    Par sandball22 dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2006, 21h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo