version 6.0
Un tableau a toujours un élément zéro. Même si l'élément zéro n'est pas affiché lorsqu'un tableau est utilisé pour remplir un objet de formulaire, vous pouvez l'utiliser sans réserve dans le langage.
Un exemple possible d'utilisation de l'élément zéro est le cas de la combo box examiné dans la section Tableaux et objets de formulaire.
Voici deux autres exemples :
(1) Si vous voulez exécuter une action seulement lorsque vous cliquez sur un élément autre que l'élément préalablement sélectionné, vous pouvez garder la trace de chaque élément sélectionné. Une façon de le faire est d'utiliser une variable process dans laquelle vous conservez le numéro de l'élément sélectionné. Une autre manière consiste à utiliser l'élément zéro du tableau :
` Méthode objet zone de défilement atNoms Au cas ou : (Evenement formulaire=Sur chargement) ` Initialisont le tableau TABLEAU TEXTE (atNoms;5) ` ... ` Initialiser l'élément zéro avec le numéro ` de l'élément courant sélectionné sous sa forme alphanumérique ` Ici vous commencez sans élément sélectionné atNoms{0} :="0" : (Evenement formulaire=Sur libération) ` Nous n'avons plus besoin du tableau EFFACER VARIABLE(atNoms) : (Evenement formulaire=Sur clic) Si (atNoms#0) Si (atNoms#Num(atNoms{0} )) vtInfo:="Vous avez cliqué sur : "+atNoms{atNoms} +" qui n'était pas précédemment sélectionné." atNoms{0} :=Chaine(atNoms) Fin de si Fin de si : (Evenement formulaire=Sur double clic) Si (atNoms#0) ALERTE ("Vous avez double-cliqué sur : "+atNoms{atNoms}) Fin de si Fin de cas
(2) En mode compatibilité ASCII, lorsque vous envoyez des caractères vers un document ou le port série, ou bien en recevez, vous avez la possibilité de filtrer les codes ASCII entre les plates-formes et systèmes dont les tables ASCII diffèrent via les commandes UTILISER FILTRE, Mac vers ISO, ISO vers Mac, Mac vers Windows et Windows vers Mac.
Dans certains cas, vous pouvez souhaiter contrôler intégralement la traduction des codes ASCII. Pour cela, vous pouvez utiliser un tableau d'entiers de 255 éléments, dans lequel le Nième élément est la traduction ASCII du caractère dont le code ASCII d'origine est N. Par exemple, si le code ASCII 187 doit devenir 156, vous écrivez <>tiFiltreAsciiExport{187}:=156 et <>tiFiltreAsciiImport{156}:=187 dans la méthode qui initialise les tableaux interprocess utilisés dans la base. Vous pouvez alors envoyer une suite de caractères en utilisant une méthode projet telle que celle-ci :
` X ENVOYER PAQUET ( Texte { ; Heure } ) Boucle ($vlChar;1;Longueur($1)) $1[[vlChar]]:=Caractere(<>tiFiltreAsciiExport{Code de caractere($1[[vlChar]])} ) Fin de boucle Si (Nombre de parametres>=2) ENVOYER PAQUET ($2;$1) Sinon ENVOYER PAQUET ($1) Fin de si ` X Recevoir paquet ( Texte { ; Heure } ) -> Texte Si (Nombre de parametres>=2) RECEVOIR PAQUET ($2;$1) Sinon RECEVOIR PAQUET ($1) Fin de si $0:=$1 Boucle ($vlChar;1;Longueur($1)) $0[[vlChar]]:=Caractere(<>tiFiltreAsciiImport{Code de caractere($0[[vlChar]])} ) Fin de boucle
Dans cet exemple, si une suite de caractères contenant des caractères NULL (code ASCII zéro) est envoyée ou reçue, l'élément zéro des tableaux <>tiFiltreAsciiExport et <>tiFiltreAsciiImport jouera son rôle comme n'importe lequel des 255 éléments du tableau.
Référence