数组 – 如何在vbscript中实现具有可变大小的数组

前端之家收集整理的这篇文章主要介绍了数组 – 如何在vbscript中实现具有可变大小的数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在重新设计网页的一部分,以便将来更容易更新.目前,它是一系列硬编码的表.要重新设计表格(例如,按照我想要的方式按字母顺序排列),需要手动交换html中的很多值.

这就是我想做的事情:
创建一个带有标题链接变量的url_Link对象,分别保存显示名称和URL.
创建一个url_Link对象数组,并将其填充到页面的.asp文件的顶部.
对这些阵列上的每个循环执行a以构建和填充表

这本身并不是那么糟糕,但我遇到了两个问题.
首先,我不想定义数组大小,因为当对链接数进行更改时,这需要更改第二个位置.
将存在一些逻辑来阻止显示某些url_Link对象(例如,某些用户无法访问某些页面,因此他们将看不到链接),这会在调整数组大小时引起问题.

我知道我可以制作一个大尺寸的数组,但这对我来说似乎很浪费(我不知道每个函数如何,也不希望出现一堆空行).

我该怎么做才能解决这些问题?我对vbscript知之甚少,而且我一直在使用的大部分代码都没有利用数组或对象.

更新:
我已经尝试使用redim PRESERVE来修剪超大阵列的多余脂肪.问题是在某些情况下,由于if条件,我的数组中填充的对象数量少于其最大大小.当我使用for循环时,这会导致问题(尝试为每个循环工作并且目前没有发生).我在redim行上收到错误“此数组已固定或暂时锁定”

码:

dim systemSettingsArray(1) 
  arrayCounter = 0
  if ADMIN = "Y" then
      set systemSettingsArray(arrayCounter) = (new url_Link).Init("Account Administration","Maintenance/Account_Admin.asp")
      arrayCounter = arrayCounter + 1
  end if
  set systemSettingsArray(arrayCounter) = (new url_Link).Init("Time Approval","Maintenance/system_Time_Approval.asp")
  redim Preserve systemSettingsArray(arrayCounter)

解决方法

在数组上使用redim preserve.您可以使用UBound查找当前的元素数量并执行类似的操作
ReDim Preserve myArrayName (UBound(myArrayName) + 1)

http://msdn.microsoft.com/en-us/library/c850dt17%28v=vs.84%29.aspx

原文链接:/aspnet/245069.html

猜你在找的asp.Net相关文章