您好我有一个文本文件,我想分配给一个数组,然后将数组中的每个项目分配给自定义的变量。当我在记事本中打开文件时,似乎数据在一行上,并且在下一条信息之前有大约10个标签空间。
我使用以下代码在msgbox中成功查看MyArray(i)中的信息。
在我的代码示例中,所有信息都列在MyArray(0)中,而MyArray(1)给出了下标超出范围的错误。文本文件中的信息似乎看起来好像是由vbCrLf分隔但是不起作用......
有没有办法从MyArray(0)修剪空格,然后将个别数据重新分配给新数组?以下是我的文件中前两条信息的内容:
967042
144890
Public Function ReadTextFile()
Dim TextFileData As String, myArray() As String, i As Long
Dim strCustomVariable1 As String
Dim strCustomVariable2 As String
'~~> Open file as binary
Open "C:\textfile\DATA-SND" For Binary As #1
'~~> Read entire file's data in one go
TextFileData = Space$(LOF(1))
Get #1, , TextFileData
'~~> Close File
Close #1
'~~> Split the data in seperate lines
myArray() = Split(TextFileData, vbCrLf)
For i = 0 To UBound(myArray())
MsgBox myArray(i)
Next
End Function
答案 0 :(得分:1)
在正常情况下,我建议您改为使用Line Input
:
Open "C:\textfile\DATA-SND" For Input As #1
Do Until EOF(1)
Redim Preserve myArray(i)
Line Input #1, myArray(i)
i = i + 1&
Loop
Close #1
但是,您可能会处理不同的终结字符。您可以使用现有代码,只需将其更改为使用vbCr
或vbLf
代替vbCrLf
。我的方法假定您的结束字符为vbCrLf
。
对于UNIX文件:
myArray() = Split(TextFileData, vbLf)
对于旧的Mac文件:
myArray() = Split(TextFileData, vbCr)