Visual Basic scripting tableau dynamique
J'ai donc un script vb qui se répand dans le RAP (Exécuter les programmes publiés) et si le programme n'a pas le dernier moment de l'exécution, mais que le programme complet du nom de dans un tableau, puis j'ai ce tableau écho à une boîte de message. J'ai initialiser le tableau pour stocker les 10 valeurs, cependant, de garder la boîte de message propre j'ai voulu Redimensionner la taille de la matrice une fois qu'il avait trouvé tous les programmes (shoudn pas jamais être plus que 3, mais qui sait avec les clients). Cependant, je n'arrive pas à obtenir le tableau de redimensionner et il affiche une boîte de message avec 10 tableau slots + le programme qu'il trouve.
Dim vprglist(10)
Dim i
Dim strBuf
Dim intIndex
Set vprograms = oUIResource.GetAvailableApplications
i = 0
For Each vprogram In vprograms
If vprogram.LastRunTime = "" Then
vprglist(i) = vprogram.FullName
i = i + 1
End If
Next
ReDim Preserve vprglist(i)
If vprglist <> Null Then
For intIndex = LBound(vprglist) To UBound(vprglist)
strBuf = strBuf & " - " & vprglist(intIndex) & vbLf
Next
vmsgbox = MsgBox("Do you want to Install(Yes) or Defer(No) the follow software: " & vbLf & strBuf,64+4)
Select Case vmsgbox
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas re-dimension d'un tableau de taille fixe (
Dim vprglist(10)
). Si vous voulez un tableau dynamique, de définir un "normal" de la variable et de lui affecter un tableau vide à elle:ou le définir directement avec
ReDim
:Ensuite, vous pouvez re-dimension du tableau comme ceci:
ReDim Preserve
permet de copier tous les éléments du tableau dans un nouveau tableau, bien que, afin de ne pas effectuer aussi bien dans la grande échelle. Si la performance est un problème, vous feriez mieux d'utiliser leSystem.Les Collections.ArrayList
classe à la place: