[VBA]FSO及数组问题请教。
有两个问题想请教一下大家。第一,如何用FSO读取文本文件中指定行的内容?
第二,我写了如下代码:
sub test()
dim strtemp() as string
open "c:\a.txt" for input as #1
line input #1,strtemp(1)
line input #1,strtemp(2)
msgbox strtemp(1) & strtemp(2)
end sub
运行的时候提示下标越界。我是想打开一个文本文件对里面的数据进行操作,用一个动态数组strtemp()来读取一行的内容。但是出现上面的错误,我把dim strtemp() as string改成dim strtemp() as varient也是同样的错误。因为文本文件的行数是不确定的,所以我用动态数组来声明,但是出现这样的错误。如果把dim strtemp() as string改为dim strtemp(2) as string。程序就运行正常。这是为什么? 动态数组需要重定义才能使用。
dim strtemp() as string
redim strtemp(2) 那我如果不知道需要几个strtemp呢?redim strtemp(n)?比方说我把line input那两行放到一个while not eof循环里面,然后要求strtemp(1)保存第一行的数据,strtemp(2)保存第二行的数据,strtemp(n)保存第N行的数据呢,该怎么处理? Sub test2()
Dim fso As New FileSystemObject
Dim ts As TextStream
Set ts = fso.OpenTextFile("c:\test.txt")
strtemp = Split(ts.ReadAll, vbCrLf) ts.Close
End Sub
回楼上。还是不行啊,提示“用户定义类型未定义。”
是不是要引用什么类啊。 Function ReadText(FileName)
Dim objFSO
Dim fdata
Dim objCountFile
Err.Clear
'On Error Resume Next
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objCountFile = objFSO.OpenTextFile(FileName, 1, True)
If Not objCountFile.AtEndOfStream Then fdata = objCountFile.ReadAll
objCountFile.Close
Set objCountFile = Nothing
Set objFSO = Nothing
If Err.Number <> 0 Then
' ReadText = fdata
Else
ReadText = fdata
End If
End Function 经调试把两个的结合起来就可以读取出来了!
页:
[1]