Bonsoir.
Au départ, j’étais parti sur la base de votre code, afin d'éviter de trop fortes modifications.
Du coup, j'avais pensé à :
Code : Tout sélectionner
Test2(2)
Func Test2($iVal)
Local $aArray[5]
Switch $iVal
Case 1
$aArray[0] = 'a'
$aArray[1] = 'b'
ReDim $aArray[2]
Case 2
$aArray[0] = 'c'
$aArray[1] = 'd'
$aArray[2] = 'e'
ReDim $aArray[3]
EndSwitch
_ArrayDisplay($aArray)
EndFunc
Mais bon, c'était vraiment pour aller au plus rapide dans votre approche.
Si vous souhaitez quelque chose de plus simple et de facilement évolutif, je partirais plutôt sur quelque chose de ce genre :
Code : Tout sélectionner
$Array = Test(1)
_ArrayDisplay($Array)
$Array = Test(2)
_ArrayDisplay($Array)
$Array = test(3)
_ArrayDisplay($Array)
Func Test($iVal)
Local $sValues
Switch $iVal
Case 1
$sValues = 'a'
Case 2
$sValues = 'ab'
Case 3
$sValues = 'abc'
EndSwitch
Return StringSplit($sValues, "", 2)
EndFunc
Edit :
Comme Tommy en parle ci-dessous, il est question d'une seule lettre.
Si vous devez rentrer plusieurs caractères, alors il vaut mieux faire cette mofification :
Code : Tout sélectionner
#include <array.au3>
$Array = Test(1)
_ArrayDisplay($Array)
$Array = Test(2)
_ArrayDisplay($Array)
$Array = test(3)
_ArrayDisplay($Array)
Func Test($iVal)
Local $sValues
Switch $iVal
Case 1
$sValues = 'alpha 1'
Case 2
$sValues = 'alpha 2|beta'
Case 3
$sValues = 'alpha 3|beta|gamma xxxx'
EndSwitch
Return StringSplit($sValues, "|", 2)
EndFunc
Comme je l'ai dit ce code est très facilement adaptable.