[UDF] Array 2D

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

[UDF] Array 2D

#1

Message par tolf »

J'ai amélioré l'UDF "Array.au3" pour pouvoir travailler avec des Matrices à 2 dimensions, avec également de nouvelles fonctions.
Ci-joint le fichier à inclure et des exemples.

Liste des fonctions :
► Afficher le texte
Autres ajouts :
- La valeur Default est bien prise en compte.
- Le paramètre $iEnd vaut par défaut -1 (fin de la matrice) au lieu de 0. Si vous mettez 0 comme valeur, elle ne sera pas remplacée par la fin de la matrice comme avant.
Nouveaux codes d'erreurs :
- 0 = pas d'erreur
- 1 = $avArray n'est pas une matrice
- 2 = $avArray a un nombre de dimensions incorrect
- 3 = $iDim n'est pas égal à 1 ou 2
- 4 et + = autres codes d'erreur
Fichiers joints
Array2D_v3.3.zip
UDF Array 2D pour la version 3.3 d'AutoIt
(16.36 Kio) Téléchargé 1022 fois
Array2D.zip
UDF Array 2D
(30.22 Kio) Téléchargé 703 fois
Modifié en dernier par tolf le lun. 29 déc. 2008 12:11, modifié 3 fois.
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
mickeich
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 16 déc. 2008 17:25
Status : Hors ligne

Re: [UDF] Array 2D

#2

Message par mickeich »

Bonjour,

Il semble que je soit tomber sur une erreur.
A la ligne 294 :

Code : Tout sélectionner

$iUBound = UBound($avArray, $iDim)
ne serait-il pas :

Code : Tout sélectionner

$iUBound = UBound($avArray, $iDim) - 1
le tableau allant de 0 à Ubound(tableau) -1, le deuxième cas se retrouve plusieurs autres fois dans d'autres fonctions.

Il manquerait peut être une fonction pour obtenir un tableau 1D d'une ligne du tableau 2D, je l'ai fait avec ces quelques lignes :

Code : Tout sélectionner

;===============================================================================
;   Fontion pour copier une ligne d'un tableau 2D dans un tableau 1D
;===============================================================================
Func _ArrayCopy (ByRef $Source, $index, ByRef $Result)
    Local $i
    ReDim $Result[UBound($Source,2)]
    
    For $i = 0 to UBound($Source,2) - 1
        $Result[$i] = $Source[$index][$i]
    Next
EndFunc
En tout cas merci pour cet UDF bien pratique.
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [UDF] Array 2D

#3

Message par tolf »

Effectivement, il y avait bien une erreur :oops: Merci de me signaler d'autres erreurs s'il y en a.

J'ai ajouté de nouvelles fonctions dans le fichier joint :
  • _Array2D_SetDelim : permet de définir un délimiteur pour saisir des valeurs plus facilement ex:

    Code : Tout sélectionner

    Dim $avArray [5] = [1,2,3,4,5]
    _Array2D_SetDelim(",")
    _Array2D_Add($avArray, "6,7")
    au lieu de :

    Code : Tout sélectionner

    Dim $avArray [5] = [1,2,3,4,5], $avAdd [2] = [6,7]
    _Array2D_Add($avArray, $avAdd)
  • _Array2D_To1D : fonction de mickeich avec ajout des retours d'erreur
J'ai enfin ajouté les options $avCol et $avLines dans la fonction _Array2D_Display, qui permettent de définir un nom pour les colonnes et les lignes.
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
mickeich
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 16 déc. 2008 17:25
Status : Hors ligne

Re: [UDF] Array 2D

#4

Message par mickeich »

Super Merci.
Je n'ai pas rencontré d'autres erreurs.
Répondre