2009-03-24 10 views
0

je faisais juste un code yicky et je pensais que, au lieu d'utiliser trois tableaux dynamiques, comme tel:dynamiques tableaux multidimensionnels LotusScript

dim x() comme chaîne, y() sous forme de chaîne, z() comme string

Il sera plus agréable d'avoir un tableau dynamique en 3 dimensions. Mais; l'aide et mes expériences maladroites n'ont pas révélé la méthode pour les définir.

Cela ne fonctionne pas:

dim x()() ou dim (2) ou dim (,)

Toute personne idées?

Répondre

5

Un tableau dynamique est déclaré de la même manière, quel que soit le nombre de dimensions (les tableaux de LotusScript peuvent avoir jusqu'à 8 dimensions). Selon votre exemple, je pense que c'est un tableau à deux dimensions que vous voulez, où la première dimension est limitée à trois entrées.

Si vous déclarez d'abord le tableau comme:

Dim x() As String 

Vous pouvez ensuite spécifier des limites selon l'exemple suivant:

Redim x(0 To 2, 0 To 9) ' A two dimensional array 

Et si vous avez besoin d'élargir plus tard le tableau (et garder tous les valeurs) vous pouvez le faire comme ceci:

Redim Preserve x(0 To 2, 0 To 99) 

S'il vous plaît garder à l'esprit que seules les limites de la dernière dimension peut être modifiée une fois que le nombre de dimensions du tableau a été défini.

1

Vous pouvez utiliser des listes au lieu de tableaux.

Dim x list as String 

Ceci est entièrement dynamique et prend une chaîne comme indice. Liste ne peut pas contenir des listes, mais les listes peuvent contenir des objets, vous voudrez peut-être faire

Public Class ListContainer 
    Public level2 List as String 
End Class 

De cette façon, vous ne devez Redim préserver. Un forall vous saute sauvagement dans une liste

+0

Steve, Les listes peuvent contenir des listes, si vous assignez une liste à une variante puis ajoutez cette variante à votre liste principale, cela fonctionnera. Faites ceci dans une fonction et renvoyez cette fonction à votre liste, par exemple: list (A) = buildlist(), dans buildlist (dim comme variante), vous dites dim b list comme chaîne, puis return buildlist = b, construisez la liste b , tu veux. Je le fais beaucoup et fonctionne bien. – andora