VB文本到数组

时间:2013-08-15 18:50:54

标签: vb6

您好我有一个文本文件,我想分配给一个数组,然后将数组中的每个项目分配给自定义的变量。当我在记事本中打开文件时,似乎数据在一行上,并且在下一条信息之前有大约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

1 个答案:

答案 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

但是,您可能会处理不同的终结字符。您可以使用现有代码,只需将其更改为使用vbCrvbLf代替vbCrLf。我的方法假定您的结束字符为vbCrLf

对于UNIX文件:

myArray() = Split(TextFileData, vbLf)

对于旧的Mac文件:

myArray() = Split(TextFileData, vbCr)