2012-10-24 97 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

不錯,拯救生命! –