Affiche un tableau 1D ou 2D dans une ListView pour aider le d�bogage
#include <Debug.au3>
_DebugArrayDisplay ( Const ByRef $aArray [, $sTitle = "DebugArray" [, $sArrayRange = "" [, $iFlags = 0 [, $vUser_Separator = Default [, $sHeader = Default [, $iMax_ColWidth = Default [, $hUser_Function = ""]]]]]]] )
$aArray | Tableau � afficher |
$sTitle | [optionnel] Titre de la bo�te de dialogue. Par d�faut, "DebugArray". |
$sArrayRange | [optionnel] Plage de lignes/colonnes � afficher. Par d�faut, "" pour tableau entier. (Voir ci-dessous pour plus de d�tails) |
$iFlags | [optionnel] D�termine les options. Ajoutez ensemble les valeurs choisies: $ARRAYDISPLAY_COLALIGNLEFT (0) = (par d�faut) Alignement du texte des colonnes � gauchet $ARRAYDISPLAY_TRANSPOSE (1) = Transpose le tableau (2D seulement) $ARRAYDISPLAY_COLALIGNRIGHT (2) = Alignement du texte des colonnes � droite $ARRAYDISPLAY_COLALIGNCENTER (4) = Alignement du texte des colonnes au centre $ARRAYDISPLAY_VERBOSE (8) = Verbeux - Affiche une MsgBox sur une erreur et fait surgir des �crans pendant le traitement de tableaux importants $ARRAYDISPLAY_NOROW (64) = Pas de colonne 'Row' affich�e |
$vUser_Separator | [optionnel] D�finit les options d'affichage des colonnes lors de la copie de donn�e dans le presse-papier. Caract�re = S�parateur des colonnes. Nombre = Largeur des colonnes fixes - les �l�ments plus longs seront tronqu�s. Par d�faut = Caract�re de s�paration en vigueur (g�n�ralement "|"). |
$sHeader | [optionnel] Noms des colonnes en ent�te (cha�ne des noms s�par�s par le caract�re de s�paration en vigueur - g�n�ralement "|"). Par d�faut, voir Remarques. |
$iMax_Colwidth | [optionnel] Largeur maximale avec laquelle les colonnes le ListView se d�veloppent pour montrer leur contenu. Par d�faut = 350 pixels. |
$hUser_Function | [optionnel] Une variable assign�e avec une fonction d�finnie par l'utilisateur � ex�cuter. Par d�faut, aucune. Voir Remarques. |
Succ�s: | Retourne 1 |
�chec: | Retourne 0 and d�finit @error comme suit: |
@error: | 1 - $aArray n'est pas un tableau 2 - $aArray a trop de dimensions (seulement 1D et 2D sont support�s) |
Si la fonction re�oit une variable qui n'est pas un tableau ou un tableau de plus de 2 dimensions, la fonction retourne une erreur et le script continue. Si le param�tre "verbose" est d�fini dans $iFlags, une bo�te de dialogue MsgBox s'affichera pour vous permettre de quitter le script imm�diatement ou de continuer le script avec le retour d'erreur normal.
Bien qu'il n'y ait pas de limites sur la taille du tableau � afficher, il existe une limitation sur les contr�les Windows qui fait que les en-t�tes et colonnes d'un ListView ne s'alignent pas s'il y en a plus de 600 environ.
La syntaxe du param�tre $sArrayRange est celle qui suit:
"7" | Montre les lignes 0-7 avec toutes les colonnes |
"7:" | Montre les lignes de la 7 jusqu'� la derni�re avec toutes les colonnes |
"|7" | Montre toutes les lignes avec les colonnes 0-7 |
"|7:" | Montre toutes les lignes avec les colonnes de la 7 � la derni�re |
"7|7" | Montre toutes les lignes 0-7 avec les colonnes 0-7 |
"5:7" | Montre toutes les lignes 5-7 avec toutes les colonnes |
"|5:7" | Montre toutes les lignes avec les colonnes 5-7 |
"7|5:7" | Montre les lignes 0-7 avec les colonnes 5-7 |
"5:7|7" | Montre les lignes 5-7 avec les colonnes 0-7 |
"5:7|5:7" | Montre les lignes 5-7 avec les colonnes 5-7 |
Copy Data & Hdr/Row | Copie le tableau ou la/les lignes s�lectionn�es dans le presse-papiers en ajoutant l'en-t�te complet et l'identification de ligne. |
Copy Data Only | Copie le tableau ou le/les lgnes s�lectionn�es dans le presse-papier avec aucun en-t�te ou identification de ligne. |
Run User Func | Ex�cute la fonction d�finie par l'utilisateur pass�e dans $sUser_Function. Cette fonction est enti�rement distincte de l'UDF et doit �tre cr��e et cod�e par l'utilisateur pour accepter 2 (et seulement 2) param�tres qui seront fournis par l'UDF elle-m�me: le tableau complet �tant affich� et un tableau 1D contenant les index des lignes s�lectionn�es avec un compte dans l'�l�ment [0]. Ces param�tres peuvent ensuite �tre utilis�s dans la fonction utilisateur si n�cessaire. Le bouton n'est pas affich� si aucune fonction n'est sp�cifi�e. |
Exit script | Quitte le script imm�diatement. |
#include <Debug.au3> #include <MsgBoxConstants.au3> Example() Func Example() ; Cr�e un tableau 1D � afficher Local $aArray_1D[5] = ["Item 0", "Item 1", "Un �l�ment 2 plus long pour montrer l'�largissement de la colonne", "Item 3", "Item 4"] _DebugArrayDisplay($aArray_1D, "1D display") ; Cr�e un tableau 2D � afficher Local $aArray_2D[25][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 _DebugArrayDisplay($aArray_2D, "2D display") $aArray_2D[5][5] = "Un �l�ment plus long pour montrer l'�largissement de la colonne" _DebugArrayDisplay($aArray_2D, "Colonne �largie - Titres perso - pas de boutons ou de colonne 'Row'", Default, 32 + 64, Default, "AA|BB|CC|DD|EE|FF|GG|HH|II|JJ") ; Assigne une fonction utilisateur � une variable pour la passer en param�tre Local $hUserFunction = _UserFunc $aArray_2D[5][5] = "Alignement de la colonne d�fini � droite" _DebugArrayDisplay($aArray_2D, "D�finit plage - aligne � droite - copie largeur colonne - fonction utilisateur", "3:7|4:9", 2, 15, "AA|BB|CC|DD|EE|FF", Default, $hUserFunction) _DebugArrayDisplay($aArray_2D, "D�finit plage - transpos�", "3:7|4:9", 1, Default, "AA|BB|CC|DD|EE|FF") ; Notez qu'il n'y a pas de nom de colonnes dans le transpos� $aArray_2D[5][5] = "Alignement de colonne d�fini � gauche" Opt("GUIDataSeparatorChar", "!") _DebugArrayDisplay($aArray_2D, "! S�parateur d'en-t�te", "3:7|4:9", Default, Default, "AA!BB!CC!DD!EE!FF") ; Cr�e une variable qui n'est pas un tableau pour provoquer une erreur - MsgBox est affich� suivant $iFlags Local $vVar = 0, $iRet, $iError $iRet = _DebugArrayDisplay($vVar, "Pas de MsgBox sur Erreur") $iError = @error MsgBox(0, "_DebugArrayDisplay() Erreur", "Retour sans Msgbox $iret =" & $iRet & " @error=" & $iError) $iRet = _DebugArrayDisplay($vVar, "MsgBox sur Erreur", Default, 8) $iError = @error MsgBox(0, "_DebugArrayDisplay() Erreur", "Retour avec Msgbox sans forcer l'arr�t $iret =" & $iRet & " @error=" & $iError) EndFunc ;==>Example ; Notez que la fonction utilisateur DOIT AVOIR DEUX param�tres m�me si vous ne souhaitez pas les utiliser tous les deux Func _UserFunc($aArray_2D, $aSelected) ; Mais si un param�tre n'est pas utilis� faire ceci pour �viter un avertissement de Au3Check #forceref $aArray_2D _DebugArrayDisplay($aSelected, "Selected cols") EndFunc ;==>_UserFunc