[R] Créer un tableau Dim modifiable (évolutif)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Eddy
Niveau 1
Niveau 1
Messages : 8
Enregistré le : mer. 29 oct. 2008 09:56
Status : Hors ligne

[R] Créer un tableau Dim modifiable (évolutif)

#1

Message par Eddy »

Bonjour à tous,

J'ai besoin de faire évoluer un script pour mettre à jour des machines distantes.
Pour l'instant, je mets à jour un peu plus d'une douzaine de matériels mais le nombre peut augmenter .
Pour le moment j'ai créé un tableau fixe, Dim[14], chacun des éléments étant traité à la suite dans une boucle.
Dim $mat[14]
$mat[0]="ip mat1"
$mat[1]="ip mat2"
etc...
For $element in $mat
Ici se passe la mise à jour...

Mais à présent, je souhaite créer un tableau évolutif en fonction des besoins en dimension, à partir d'une base ou d'un fichier. Ce qui me permettrait d'ajouter ou de retirer des éléments sans toucher au programme directement et donc sans modifier à chaque fois le tableau.

Merci bien pour vos réponses et pour votre aide.
Modifié en dernier par Tlem le ven. 31 oct. 2008 00:14, modifié 2 fois.
Raison : Ajout de la balise [..] dans le titre
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: Créer un tableau Dim modifiable (évolutif)

#2

Message par jbnh »

Oui il y a bien sur moyen , il suffit de détecter le nombre de matériel pour déterminer la longeur de l'array. Mais il nous faudrait plus d'info sur cette 'base' pour savoir de quoi il s"agit.

Je veux dire par la, comment est-il structuré
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Eddy
Niveau 1
Niveau 1
Messages : 8
Enregistré le : mer. 29 oct. 2008 09:56
Status : Hors ligne

Re: Créer un tableau Dim modifiable (évolutif)

#3

Message par Eddy »

Bonjour,

Voici les informations complémentaires :

En fait, le tableau contient chacune des adresses IP pour chaque matériel pour lancer une session telnet ou ssh. Ensuite le programme envoie les commandes de mise à jour.

Le tableau se présente ainsi :
Dim $mat[14]
$mat[0]="telnet <adresse ip1>"
$mat[1]="telnet <adresse ip2"
etc...
For $element in $mat
Ensuite quand la session est connectée j'envoie les identifiants + les commandes de mise à jour enregistrées dans des variables.

Pour plus d'efficacité, il faudrait que le tableau puisse varier en fonction des matériels à mettre à jour, et qui est variable. Je ne vois qu'un tableau basé sur un fichier ou une base (dans un premier temps il pourrait s'agir d'un simple fichier) plutôt que de modifier le tableau Dim à chaque fois. Ce fichier se présenterait comme cela s'il s'agit d'utiliser telnet :
Telnet <adresse ip1>
Telnet <adresse ip2>...

Merci bien.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: Créer un tableau Dim modifiable (évolutif)

#4

Message par ani »

bonjour Eddy

suis pas doué dans ce domaine, je passe un tour ^^'

regarde cette exemple Tableau dynamique à partir d'un tableay statique
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Créer un tableau Dim modifiable (évolutif)

#5

Message par Tlem »

Une idée comme une autre serait d'utiliser un fichier .INI (qui permettra de créer le tableau automatiquement).

Code : Tout sélectionner

[Mat1]
ip="telnet <adresse ip1>"
[Mat2]
ip="telnet <adresse ip2>"
Cette solution à pour mérite de pouvoir évoluer rapidement.
Par exemple vous pouvez ajouter une machine indépendamment du script principal, ou au prix d'une modification mineure du script, ajouter une information par machine.

Code : Tout sélectionner

[Mat1]
ip="telnet <adresse ip1>"
Name="PC1"
[Mat2]
ip="telnet <adresse ip2>"
Name="PC2"
Les fonctions de lecture sont toutes faites :wink: :

Code : Tout sélectionner

IniReadSectionNames ( "filename" )
IniReadSection ( "filename", "section" )
IniRead ( "filename", "section", "key", "default" )
Vraiment trop simple. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Eddy
Niveau 1
Niveau 1
Messages : 8
Enregistré le : mer. 29 oct. 2008 09:56
Status : Hors ligne

Re: [..] Créer un tableau Dim modifiable (évolutif)

#6

Message par Eddy »

Merci Thierry et merci à chacun d'entre vous,

En effet la solution d'un fichier ".ini" est à essayer.

En ce qui concerne le lien "Tableau dynamique à partir d'un tableau statique", je n'en saisis pas encore toute la logique pour le mettre en pratique.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Créer un tableau Dim modifiable (évolutif)

#7

Message par Tlem »

En ce qui concerne le tableau dynamique, aujourd'hui virtuellement tout tableau est dynamique !!!
En effet l'UDF Array.au3 permet de nombreuses manipulations sur les tableaux. ;)
Voici la liste des fonctions contenues dans l'UDF Array.au3 :
  • ;_ArrayAdd
    ;_ArrayBinarySearch
    ;_ArrayConcatenate
    ;_ArrayDelete
    ;_ArrayDisplay
    ;_ArrayFindAll
    ;_ArrayInsert
    ;_ArrayMax
    ;_ArrayMaxIndex
    ;_ArrayMin
    ;_ArrayMinIndex
    ;_ArrayPop
    ;_ArrayPush
    ;_ArrayReverse
    ;_ArraySearch
    ;_ArraySort
    ;_ArraySwap
    ;_ArrayToClip
    ;_ArrayToString
    ;_ArrayTrim
Ça donne de quoi faire. :lol:
Tant que les choses sont en mémoire pas de problème, mais en l'occurrence vous souhaitez gérer une liste de matériels et à partir de cette liste créer un tableau.
Donc le fichier .INI est tout indiqué, ou si votre liste de matériel doit devenir si grosse que la capacité normale d'un fichier .INI est dépassée, alors il faudra passer par une base de donnée (mais je pense pas que vous deviez allé jusque là ;) )
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Eddy
Niveau 1
Niveau 1
Messages : 8
Enregistré le : mer. 29 oct. 2008 09:56
Status : Hors ligne

Re: [..] Créer un tableau Dim modifiable (évolutif)

#8

Message par Eddy »

Bonjour,

La méthode de Thierry, le fichier ".INI", a très bien fonctionnée. Après plusieurs tests, aucun problème rencontré. A terme, pour l'usage d'autres personnes, je pense automatiser la liste des matériels contenus dans ce fichier ".INI", afin d'y ajouter ou de supprimer des équipements réseaux. Je ne suis pas encore très familier avec Autoit, mais je pense qu'on doit pouvoir ajouter des sections supplémentaires en incrémentant le nombre associé au nom de la section : ex. [Mat1], [Mat2], ... [Mat20]...

Bien cordialement
Répondre