Page 2 sur 2

Re: Accès et recherche dans un gros fichier texte (10 000 lignes)

Posté : lun. 12 sept. 2016 17:07
par mikell
'' Fichier d'aide > AutoIt > Language Reference > Variables > Arrays'' a écrit : You can use up to 64 dimensions in an Array.

Re: Accès et recherche dans un gros fichier texte (10 000 lignes)

Posté : lun. 12 sept. 2016 17:15
par jchd
En théorie seulement. En pratique : 16 non 24 (*), sauf si l'on accepte les dimensions "bidon" [1]

(*) voir correctif ci après :oops:

Re: Accès et recherche dans un gros fichier texte (10 000 lignes)

Posté : lun. 12 sept. 2016 22:23
par amphase
Je remercie orax et jchd pour leur vigilance. Bien évidement, il s'agit ici de tableaux 2D de 5 colonnes de la forme $aArray[n][5]. Sincèrement désolé si j'ai induit quelqu'un en erreur. No limit à AutoIt ! J'ai juste montré les miennes. Je vais cacher ma honte par là... :oops:

Re: Accès et recherche dans un gros fichier texte (10 000 lignes)

Posté : lun. 12 sept. 2016 23:26
par jchd
Je corrige ma propre erreur : la limite en nombre de dimensions est 24 et non 16. <-- Pan sur le bec !

J'explique quand même vite fait pourquoi le nombre de dimensions est limité à 24 en pratique.
Cette définition : $a[1][1[1][1] est certes techniquement une array à 4 dimensions mais elle est structurellement équivalente à une variable simple, car $a ne peut contenir qu'un seul élément, écrit $a[0][0][0][0]. Pour qu'une valeur de dimension ne soit pas inutile ou du moins non significative, elle doit être au moins égale à 2.

Sachant que les array AutoIt ne peuvent contenir plus de 2^24 (16 777 216) éléments, il vient que le nombre maximum de dimensions significatives d'une array est 24 et est obtenu par une déclaration du type :
Local $a[2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2]

On peut certes introduire 64-24 = 40 dimensions "bidon" en mettant autant de [1] qu'on pourra, mais à part compliquer l'écriture et ralentir l'accès, on ne changera pas significativement la structure ainsi créée.

Ceci dit, il est quand même rarrissime d'avoir à manipuler plus de 24 dimensions.