UDF > Array >


_ArrayDisplay

Affiche un tableau 1D ou 2D dans un contr�le ListView

#include <Array.au3>
_ArrayDisplay ( Const ByRef $aArray [, $sTitle = "ArrayDisplay" [, $sArrayRange = "" [, $iFlags = 0 [, $vUser_Separator = Default [, $sHeader = Default [, $iMax_ColWidth = Default]]]]]] )

Param�tres

$aArray Tableau � afficher
$sTitle [optionnel] Titre pour l'affichage. Par d�faut "ArrayDisplay".
$sArrayRange [optionnel] Plage de lignes/colonnes � afficher. Par d�faut (""), le tableau entier. (Voir ci-dessous pour plus de d�tails)
$iFlags [optionnel] D�termine les options UDF. Ajoutez des valeurs ensemble si besoin:
    $ARRAYDISPLAY_COLALIGNLEFT (0) = (par d�faut) Alignement du texte dans les colonnes - � gauche
    $ARRAYDISPLAY_TRANSPOSE (1) = Transpose le tableau
    $ARRAYDISPLAY_COLALIGNRIGHT (2) = Alignement du texte dans les colonnes - � droite
    $ARRAYDISPLAY_COLALIGNCENTER (4) = Alignement du texte dans les colonnes - au centre
    $ARRAYDISPLAY_VERBOSE (8) = Verbose - affiche MsgBox si erreur et recouvre l'�cran pour de grands tableaux
    16 = Obsol�te
    32 = Obsol�te
    $ARRAYDISPLAY_NOROW (64) = Aucune colonne 'Row' ne s'affiche
$vUser_Separator [optionnel] Obsol�te. Gard� pour la compatibilit� des scripts.
$sHeader [optionnel] Les noms des colonnes dans l'ent�te (cha�ne de noms s�par�s par le s�parateur courant - en g�n�ral "|" ). Par d�faut voir Remarques.
$iMax_Colwidth [optionnel] Largeur maximale � laquelle une colonne de ListView s'�largit pour afficher le contenu. Valeur par d�faut 350 pixels.

Valeur de retour

Succ�s: Retourne 1
�chec: Retourne 0 et d�finit @error <> 0 :
@error: 1 - $aArray n'est pas un tableau
2 - $aArray a trop de dimensions (seulement 1D et 2D est support�)

Remarques

Si le param�tre $aArray n'est pas un tableau ou est un tableau de plus de 2 dimensions, la fonction retourne une erreur et le script continue. Si le param�tre "verbose" est install� dans $iFlags une MsgBox s'affiche qui offre la possibilit� de quitter imm�diatement le script ou de continuer le script avec un retour normal d'erreur.

Bien qu'il n'y ait aucune limite sur la taille du tableau � afficher, il y a une limitation des contr�les de Windows, ce qui signifie que les en-t�tes et les colonnes des ListView ne s'alignent pas s'il y en a plus de 600 environ.

La syntaxe du param�tre $sArrayRange est la suivante:

"7" Affiche les lignes 0-7 avec toutes les colonnes
"7:" Affiche les lignes 7-fin avec toutes les colonnes
"|7" Affiche toutes les lignes avec les colonnes 0-7
"|7:" Affiche toutes les lignes avec les colonnes 7-fin
"7|7" Affiche les lignes 0-7 avec les colonnes 0-7
"5:7" Affiche les lignes 5-7 avec toutes les colonnes
"|5:7" Affiche toutes les lignes avec les colonnes 5-7
"7|5:7" Affiche les lignes 0-7 avec les colonnes 5-7
"5:7|7" Affiche les lignes 5-7 avec les colonnes 0-7
"5:7|5:7" Affiche les lignes 5-7 avec les colonnes 5-7

Toutes les valeurs de colonnes sont ignor�es pour les tableaux 1D.

Les noms $sHeader (s�par�s par le s�parateur courant) seront utilis�s pour autant de colonnes qu'il y a de noms. S'il n'y a pas de nom, ou pas assez, les noms suivants pour les ent�tes seront utilis�s: "Row|Col0" pour les tableaux 1D, ou "Row|Col0|Col1|...|Col n" pour les tableaux 2D. Si le tableau est affich� transpos�, les en-t�tes sont ignor�s.

Les dimensions du tableau sont affich�es sous le tableau. Ils sont en texte rouge si le tableau est transpos� ou seulement une plage d'�l�ments est affich�e - une info-bulle affiche la ou les occurrences particuli�res.

Si le param�tre "verbose" est d�fini dans $iFlags, une bo�te de dialogue splash s'affiche lors du traitement initial lorsque le tableau � afficher contient plus de 10000 �l�ments.

Un �l�ment de tableau contenant un autre tableau est affich� comme {Array}.

Cliquez sur un en-t�te de colonne pour le trier.

Exemple

#include <Array.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()

    ; Cr�e un tableau 1D et l'affiche
    Local $aArray_1D[5] = ["Item 0", "Item 1", "Un long Item 2 pour montrer l'extension de la  colonne", "Item 3", "Item 4"]

    _ArrayDisplay($aArray_1D, "Affichage 1D")
    
    ; Cr�e un tableau 2D � afficher
    Local $aArray_2D[20][15]
    For $i = 0 To UBound($aArray_2D) - 1
        For $j = 0 To UBound($aArray_2D, 2) - 1
            $aArray_2D[$i][$j] = "Item " & StringFormat("%02i", $i) & StringFormat("%02i", $j)
        Next
    Next

    _ArrayDisplay($aArray_2D, "Affichage 2D") 
    _ArrayDisplay($aArray_2D, "Affichage 2D transpos�", Default, 1)

    ReDim $aArray_2D[20][10]
    $aArray_2D[5][5] = "Un long item pour montrer l'expansion de la colonne"
    _ArrayDisplay($aArray_2D, "Expansion colonne - Titres personnalis� - pas de ligne/colonne", Default, 64, Default, "AA|BB|CC|DD|EE|FF|GG|HH|II|JJ")

    $aArray_2D[5][5] = "Alignement de la colonne d�fini � droite"
    _ArrayDisplay($aArray_2D, "D�finition par plage - alignement � droite", "3:7|4:9", 2, Default, "AA|BB|CC|DD|EE|FF")

    $aArray_2D[5][5] = "Alignement de la colonne d�fini � gauche"
    Opt("GUIDataSeparatorChar", "!")
    _ArrayDisplay($aArray_2D, "! S�parateur d'ent�te", "3:7|4:9", Default, Default, "AA!BB!CC!DD!EE!FF")

    ; Cr�e une variable non tableau pour forcer une erreur - MsgBox s'affiche car $iFlags est install�
    Local $vVar = 0, $iRet, $iError
    $iRet = _ArrayDisplay($vVar, "Pas de MsgBox lors d'une Erreur")
    $iError = @error
    MsgBox(0, "Erreur _ArrayDisplay()", "Retourne sans Msgbox interne $iret =" & $iRet & " @error=" & $iError)

    $iRet = _ArrayDisplay($vVar, "MsgBox lors d'une Erreur", Default, 8)
    $iError = @error
    MsgBox(0, "Erreur _ArrayDisplay()", "Retourne une Msgbox interne sans forcer un Exit $iret =" & $iRet & " @error=" & $iError)

EndFunc    ;==>Example