File io vbs类型不匹配错误800a000d类型不匹配:readfile
我是vbs新手,在set arr=readfile(文件名)行遇到错误 我正在尝试将文件读入数组 不知道我做错了什么 提前感谢您的帮助File io vbs类型不匹配错误800a000d类型不匹配:readfile,file-io,vbscript,File Io,Vbscript,我是vbs新手,在set arr=readfile(文件名)行遇到错误 我正在尝试将文件读入数组 不知道我做错了什么 提前感谢您的帮助 Dim FileName ' File Name to Process Call MainProcedure WScript.Quit Sub MainProcedure filename = "c:\print\check.bat" WScript.Echo( "Printing document in progress..." )
Dim FileName ' File Name to Process
Call MainProcedure
WScript.Quit
Sub MainProcedure
filename = "c:\print\check.bat"
WScript.Echo( "Printing document in progress..." )
WScript.Echo( "Filename ====> " & FileName )
Dim arr, i
i = 0
set arr = readfile( FileName )
For Each present In arr
' user = split(present,",")
' WScript.Echo user(0) & user(1) & user(2) & user(3) & user(4) & "|"
i = i + 1
WScript.Echo present & "|"
Next
End Sub
Sub readfile(strFile)
dim fs,objTextFile
set fs=CreateObject("Scripting.FileSystemObject")
If (fs.FileExists( strFile)) Then
dim userArrayList
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
Else
'Alert User
WScript.Echo("File does not exist!")
WScript.Quit()
End If
end Sub
你的
表示readfile()
是一个函数(返回ArrayList)。但是你定义
Sub readfile(strFile)
...
set readfile = userArrayList
...
end Sub
您可以尝试将此更改为
Function readfile(strFile)
...
set readfile = userArrayList
...
End Function
添加:
“将文件的行读入数组”任务可以用更简单的方法完成:
cscript fitoar.vbs
0 Option Explicit
1 Dim a : a = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("fitoar.vbs").ReadAll(), vbCrLf)
2 Dim l
3 For l = 0 To UBound(a)
4 WScript.Echo l, a(l)
5 Next
6
你的
表示readfile()
是一个函数(返回ArrayList)。但是你定义
Sub readfile(strFile)
...
set readfile = userArrayList
...
end Sub
您可以尝试将此更改为
Function readfile(strFile)
...
set readfile = userArrayList
...
End Function
添加:
“将文件的行读入数组”任务可以用更简单的方法完成:
cscript fitoar.vbs
0 Option Explicit
1 Dim a : a = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("fitoar.vbs").ReadAll(), vbCrLf)
2 Dim l
3 For l = 0 To UBound(a)
4 WScript.Echo l, a(l)
5 Next
6
谢谢,确实我忽略了sub不能返回值,也感谢更简单的方法:),一直学习谢谢,确实我忽略了sub不能返回值,也感谢更简单的方法:),一直学习