Легко - Читать файл в массив - PullRequest
0 голосов
/ 14 марта 2010

Итак, у меня есть файл .dat, который просто содержит список имен, каждое имя находится в новой строке. У меня день полных умственных пробелов, но как мне получить эти имена из файла и поместить их в массив.

Спасибо за любую помощь

Ответы [ 3 ]

1 голос
/ 14 марта 2010

Мой VB6 немного ржавый, но я думаю, что это что-то вроде этого, благодаря Google! : P

DIM FileNo AS Integer
DIM strNameList() AS STRING

FileNo = FreeFile
Open "file.dat" For Input As FileNo
Do Until EOF(FileNo)
   Line Input FileNo, strNameList(UBound(strNameList))
   REDIM Preserve strNameList(UBound(strNameList) + 1)
Loop
Close FileNo

Теперь strNameList будет иметь массив записей из файла ... Фу ... Надеюсь, это правильно, несмотря на мои деревенские навыки ....

1 голос
/ 14 марта 2010

Вы должны прочитать это
http://www.visualbasic.happycodings.com/Files_Directories_Drives/code54.html

Выдержка

Function FileLoadToArray(ByRef asLines() As String, ByVal sFileName As String) As String
    Dim iFileNum As Long, lFileLen As Long
    Dim sBuffer As String

    'Initialise Variables
    On Error GoTo ErrFailed

    'Open File
    iFileNum = FreeFile
    Open sFileName For Binary Access Read As #iFileNum
    'Get the size of the file
    lFileLen = LOF(iFileNum)
    If lFileLen Then
        'Create output buffer
        sBuffer = String(lFileLen, " ")
        'Read contents of file
        Get iFileNum, 1, sBuffer
        'Split the file contents
        asLines = Split(sBuffer, vbNewLine)
    End If

    Close #iFileNum
    'Return success
    FileLoadToArray = ""

    Exit Function

ErrFailed:
    Debug.Assert False
    Debug.Print Err.Description
    FileLoadToArray = Err.Description
    'Close file
    If iFileNum Then
        Close #iFileNum
    End If
End Function
0 голосов
/ 19 марта 2010

Вы можете использовать универсальную функцию чтения всех файлов

Private Function ReadFile(sFile As String) As String
    Dim nFile       As Integer

    nFile = FreeFile
    Open sFile For Input Access Read As #nFile
    ReadFile = Input$(LOF(nFile), nFile)
    Close #nFile
End Function

с Split функцией, подобной этой

    Dim vSplit As Variant
    vSplit = Split(ReadFile("your_file.txt"), vbCrLf)
...