如何通过索引获取集合项目? [英] How to get collection item by index?

查看:134
本文介绍了如何通过索引获取集合项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何访问集合项目?
下一步code给我的错误在最后一行。

 <包装及GT;
 <作业ID =NonDisabledServicesCollecting>
<注释和GT;
************************************************** **********
1条评论
2
3
************************************************** **********
< / COMMENT>
  < SCRIPT LANGUAGE =VBScript中>
flash_folder =I:\\ 123 \\
str_flash_folder_colFiles =
num_flash_folder_colFiles = 0
设置flash_folder_colFiles =的CreateObject(Scripting.FileSystemObject的)。的GetFolder(flash_folder).Files
WScript.Echo flash_folder_colFiles(1)
对于flash_folder_colFiles每个flash_folder_objFile
  num_flash_folder_colFiles = num_flash_folder_colFiles + 1
  str_flash_folder_colFiles = str_flash_folder_colFiles + CSTR(num_flash_folder_colFiles)++ flash_folder_objFile.Name + vbCrLf
下一个昏暗的响应

  响应=输入框(请输入对应于您的选择数量:选择DLL复制...+ vbCrLf + str_flash_folder_colFiles,)
  如果响应=那WScript.Echo输入是空的。 检测取消
  如果则IsNumeric(响应),然后退出做'检测值响应。
  WScript.Echo您必须输入一个数值。
循环
selected_flush_DLL = flash_folder + flash_folder_colFiles(CINT(响应))
WScript.Echo selected_flush_DLL  < / SCRIPT>
 < /工作>
< /包>


解决方案

该.Files集合无法通过索引访问:

 >>设置oFiles = goFS.GetFolder(\\)。文件
>> N = oFiles(0).Name点
>>
错误号:5
错误说明:无效的过程调用或参数

您需要一个For Each循环来填补例如随机存取集合数组:

 >>设置oFiles = goFS.GetFolder(\\)。文件
>>使用ReDim aFiles(oFiles.Count - 1)
>> I = 0
>>对于每个OFILE在oFiles
>>集aFiles(I)= OFILE
>>下一个
>> N = aFiles(0).Name点
>> WScript.Echoñ
>>
31823568.notes

How to access item in collection? Next code gives me error in last line.

<package>
 <job id="NonDisabledServicesCollecting">
<COMMENT>
************************************************************
1 comment
2 
3 
************************************************************
</COMMENT>
  <script language="VBScript">
flash_folder="I:\123\"
str_flash_folder_colFiles = ""
num_flash_folder_colFiles = 0
Set flash_folder_colFiles = CreateObject("Scripting.FileSystemObject").GetFolder(flash_folder).Files
WScript.Echo  flash_folder_colFiles(1)
For Each flash_folder_objFile in flash_folder_colFiles
  num_flash_folder_colFiles = num_flash_folder_colFiles + 1
  str_flash_folder_colFiles = str_flash_folder_colFiles + cstr(num_flash_folder_colFiles) + " " + flash_folder_objFile.Name + vbCrLf
Next

Dim response
Do
  response = InputBox("Please enter the number that corresponds to your selection:" + vbCrLf + str_flash_folder_colFiles, "Choose DLL to copy...")
  If response = "" Then WScript.Echo "Input is empty." 'Detect Cancel
  If IsNumeric(response) Then Exit Do                  'Detect value response.
  WScript.Echo "You must enter a numeric value."
Loop
selected_flush_DLL = flash_folder + flash_folder_colFiles(cint(response))
WScript.Echo selected_flush_DLL

  </script>
 </job>
</package>

解决方案

The .Files collection can't be accessed by index:

>> Set oFiles = goFS.GetFolder(".\").Files
>> n = oFiles(0).Name
>>
Error Number:       5
Error Description:  Invalid procedure call or argument

You need a For Each loop to fill a random access collection e.g. an Array:

>> Set oFiles = goFS.GetFolder(".\").Files
>> ReDim aFiles(oFiles.Count - 1)
>> i = 0
>> For Each oFile In oFiles
>>     Set aFiles(i) = oFile
>> Next
>> n = aFiles(0).Name
>> WScript.Echo n
>>
31823568.notes

这篇关于如何通过索引获取集合项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆