Aide et conseils concernant AutoIt et ses outils.
servabat
Niveau 4
Messages : 69 Enregistré le : sam. 02 avr. 2011 16:26
Status :
Hors ligne
#1
Message
par servabat » sam. 30 juil. 2011 20:41
Bonjour,
j'ai un petit problême avec une fonction à laquelle je doit faire passer deux arrays : $m et $l .
J'ai donc essayé:
Code : Tout sélectionner
Func encstring($m, $l)
$nbblocs = UBound[$m]
;suite de la Fonction
EndFunc
et
Code : Tout sélectionner
Func encstring(ByRef $m, ByRef $l)
$nbblocs = UBound[$m]
;suite de la fonction
EndFunc
Mais avec ces deux formulation, j'obtient l'erreur :
Que faire?
Merci d'avance
Modifié en dernier par
servabat le sam. 30 juil. 2011 22:19, modifié 1 fois.
TommyDDR
Modérateur
Messages : 2130 Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status :
Hors ligne
#2
Message
par TommyDDR » sam. 30 juil. 2011 20:56
Je dirais qu'un petit F1 sur le mot Ubound vous donnerai la réponse.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
servabat
Niveau 4
Messages : 69 Enregistré le : sam. 02 avr. 2011 16:26
Status :
Hors ligne
#3
Message
par servabat » sam. 30 juil. 2011 21:32
Et bien malheuresement il se trouve que non, j'ai pourtant bien fouillé l'aide...
PandiPanda
Membre émérite
Messages : 656 Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status :
Hors ligne
#4
Message
par PandiPanda » sam. 30 juil. 2011 21:38
Ubound()
ceci;
Code : Tout sélectionner
Func encstring($m, $l)
$nbblocs = UBound[color=#FF0000][[/color]$m[color=#FF0000]][/color]
;suite de la Fonction
EndFunc
en ceci;
Code : Tout sélectionner
Func encstring($m, $l)
$nbblocs = UBound[color=#40BF40]([/color]$m[color=#40BF40])[/color]
;suite de la Fonction
EndFunc
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
servabat
Niveau 4
Messages : 69 Enregistré le : sam. 02 avr. 2011 16:26
Status :
Hors ligne
#5
Message
par servabat » sam. 30 juil. 2011 21:38
Hum autant pour moi, erreur idiote. ByRef est il utile cependant ?
Merci PandiPanda et TommyDDR.
PandiPanda
Membre émérite
Messages : 656 Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status :
Hors ligne
#6
Message
par PandiPanda » sam. 30 juil. 2011 21:41
Pour simplement recuperer la taille de votre tableau non, pas utile
un peu de lecture :p
Variables - using Global, Local and ByRef
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
servabat
Niveau 4
Messages : 69 Enregistré le : sam. 02 avr. 2011 16:26
Status :
Hors ligne
#7
Message
par servabat » sam. 30 juil. 2011 22:07
Ce n'est pas seulement pour récuperer la taille de mon tableau, je fait des traitements de données qui sont dans cet array (avec des BitShift() BitRotate() etc...)
Merci, je vais lire ça
Iste
Niveau 11
Messages : 1870 Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status :
Hors ligne
#8
Message
par Iste » sam. 30 juil. 2011 22:10
ByRef est utile pour soit :
-Travailler directement sur le tableau (exemple _ArrayAdd())
-Eviter la duplication d'un gros tableau. En effet, les valeurs passées sans ByRef sont copiées avant d'etre envoyées a la fonction. Pour des gros tableaux cela peut donc etre assez lourd.
Donc voila, si vous etes dans un de ces deux cas (ce qui me semble) byRef vous sera utile.
Signez ici
servabat
Niveau 4
Messages : 69 Enregistré le : sam. 02 avr. 2011 16:26
Status :
Hors ligne
#9
Message
par servabat » sam. 30 juil. 2011 22:18
D'accord, merci beaucoup Iste pour l'explication très claire. A vrai dire, je ne compte pas modifier le tableau, mais c'est en effet un gros tableau. Je testerais avec les deux et je regarderais le plus rapide / pratique.
Merci beaucoup à tous.