Page 1 sur 1

[UDF] Array 2D

Posté : jeu. 31 juil. 2008 21:56
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

Re: [UDF] Array 2D

Posté : mer. 17 déc. 2008 15:13
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.

Re: [UDF] Array 2D

Posté : jeu. 18 déc. 2008 19:55
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.

Re: [UDF] Array 2D

Posté : ven. 19 déc. 2008 10:09
par mickeich
Super Merci.
Je n'ai pas rencontré d'autres erreurs.