2013-05-27 1 views
1

J'ai un tableau en TTCN-3 que je veux utiliser la commande permutation sur. Cela se fait habituellement comme ceci:Comment utiliser permutation sur un tableau de taille arbitraire en TTCN-3?

myArray := { permutation(myArray[0], myArray[1], myArray[2]) }; 

Le résultat est que quand je pense que le résultat soit monTableau, l'ordre des éléments n'a pas d'importance. Cependant, cela nécessite un codage en dur des valeurs réelles dans le tableau, comme ci-dessus, où je dis spécifiquement à la permutation quelles valeurs du tableau que je veux présenter. Je suis maintenant dans une situation où j'ai un tableau que je du code ne connais pas la taille de. Je peux trouver la taille de mon tableau avec

sizeof(myArray); 

donc si je pouvais utiliser cette valeur que je reçois dans l'exécution de préciser comment doit se faire la permutation, ce serait génial. Ce que je veux accomplir est quelque chose comme ça

myArray := { permutation(myArray[0], ... , myArray[n]) }; 

où n est la taille du tableau, que je ne sais pas à partir du code.

Répondre

2

Dans votre cas particulier peut-être un "ensemble de" serait la construction désirée. Un ensemble de valeurs correspond à une liste de mêmes valeurs dans n'importe quel ordre. Néanmoins, il existe une demande de modification traitée pour le langage TTCN-3 à (CR6088), étendant la BNF pour prendre également en charge les listes dynamiques en tant que paramètres pour le surensemble, le sous-ensemble, la permutation et le complément.

Le RC a été accepté et sera publié dans la nouvelle édition TTCN-3 4.5.1 (pour plus de détails, voir la section B.1.3.3). La norme de langage noyau TTCN-3 4.5.1 devrait être disponible au http://www.ttcn-3.org/.

S'il vous plaît trouverez ci-dessous l'exemple (du document standard) qui montre l'utilisation telle que définie par Edition 4.5.1:

type record of integer RoI; 
template RoI t_RoI1 := {1, 2, *}; 
template RoI t_RoI2 := {permutation(0, all from t_RoI1), 4, 5}; 
// results in {permutation(0, 1, 2, *), 4, 5} 

Cordialement,
Bogdan

+0

"ensemble de" bien résolu mon problème immédiat. Merci beaucoup! – Helena

Questions connexes