2012-10-24 43 views
8

我想读取文件到数组列表中,然后从函数中返回它。 我的功能工作的文件中读取到一个数组但是当我尝试将其设置为可变它错误说无效的过程调用或参数VBScript如何从函数返回ArrayList

我读文件代码

function readfile(strFile) 
dim fs,objTextFile 
set fs=CreateObject("Scripting.FileSystemObject") 
dim arrStr 
set objTextFile = fs.OpenTextFile(strFile) 
Set userArrayList = CreateObject("System.Collections.ArrayList") 

Do Until objTextFile.AtEndOfStream 
strNextLine = objTextFile.Readline 
userArrayList.add strNextLine 
Loop 

objTextFile.Close 
set objTextFile = Nothing 
set fs = Nothing 

readfile = userArrayList 
end function 

在我的代码调用它

arr = readfile("\\dc1\NETLOGON\Scripts\Add_Users\user.csv") 

For Each present In arr 
user = split(present,",") 
WScript.Echo user(0) & user(1) & user(2) & user(3) & user(4) & "|" 
Next 

我在做什么错?

回答

9

原来我需要使用set这里是工作代码。 工作功能

function readfile(strFile) 
dim fs,objTextFile 
set fs=CreateObject("Scripting.FileSystemObject") 
dim arrStr 
set objTextFile = fs.OpenTextFile(strFile) 
Set userArrayList = CreateObject("System.Collections.ArrayList") 

Do Until objTextFile.AtEndOfStream 
strNextLine = objTextFile.Readline 
userArrayList.add strNextLine 
Loop 

objTextFile.Close 
set objTextFile = Nothing 
set fs = Nothing 

set readfile = userArrayList 
end function 

工作呼叫

Dim arr 
set arr = readfile("\\dc1\NETLOGON\Scripts\Add_Users\user.csv") 
For Each present In arr 
user = split(present,",") 
WScript.Echo user(0) & user(1) & user(2) & user(3) & user(4) & "|" 
'WScript.Echo present & "|" 
Next 
+4

有时,它可能只是简单:)。 +1用于查找和发布您的解决方案。 – AutomatedChaos

+1

谢谢,真的有帮助! – John

+0

不错,拯救生命! –