Как считать файл в массив?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Как считать файл в массив?

Сообщение Alexandrius » 11.11.2009 (Ср) 19:16

Подскажите, как можно считать текстовый файл в массив, так, чтобы каждая следующая строка была следующим элементом массива. Я пробую так:
Код: Выделить всё
Dim Opt(7) As String
MyFile = FreeFile
Open (App.Path & "\Text.txt") For Input As #MyFile
        Do Until EOF(MyFile)
            Line Input #MyFile, Opt()
        Loop
    Close #MyFile

Подскажите, что нужно исправить?
Последний раз редактировалось Alexandrius 11.11.2009 (Ср) 20:01, всего редактировалось 1 раз.
Visual Basic 2008

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как считать файл в массив?

Сообщение Хакер » 11.11.2009 (Ср) 19:54

Голову.

Выражение Opt() попробуй объяснить самому себе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как считать файл в массив?

Сообщение alibek » 11.11.2009 (Ср) 20:21

Split
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как считать файл в массив?

Сообщение Денис » 11.11.2009 (Ср) 21:22

Либо
Код: Выделить всё
Dim Opt(7) As String
MyFile = FreeFile
Open (App.Path & "\Text.txt") For Input As #MyFile
        Do Until EOF(MyFile)
            Line Input #MyFile, Opt(i)
            i=i+1
        Loop
Close #MyFile

либо
Код: Выделить всё
Dim Opt() As String
Open (App.Path & "\Text.txt") For binary As #MyFile
        put #MyFile, , tmp
            opt = split(tmp)
Close #MyFile

насчет второго кода не уверен, так как написал прямо здесь. надо проверить в бейсике.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Как считать файл в массив?

Сообщение Debugger » 11.11.2009 (Ср) 21:47

Денис писал(а):
Код: Выделить всё
Dim Opt() As String
Open (App.Path & "\Text.txt") For binary As #MyFile
        put #MyFile, , tmp
            opt = split(tmp)
Close #MyFile

Код: Выделить всё
Dim Opt() As String
Dim tmp As String
tmp=String(Filelen(App.Path & "\Text.txt"), " ")
Open (App.Path & "\Text.txt") For binary As #MyFile
Get #MyFile, , tmp
opt = split(tmp, vbNewLine)
Close #MyFile

Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Re: Как считать файл в массив?

Сообщение Alexandrius » 11.11.2009 (Ср) 22:47

Что - то не работает и это. Может какой вариант есть, как за один проход цикла, каждую строку текстового файла считать в свою переменную? Если в массив не выходит...
Visual Basic 2008

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Как считать файл в массив?

Сообщение Debugger » 11.11.2009 (Ср) 22:51

Может, ты плохо думаешь?
Код: Выделить всё
    Const sFile As String = "C:/log.txt"
    Dim Opt() As String
    Dim tmp As String
    Dim MyFile As Integer
    MyFile = FreeFile
    tmp = String(FileLen(sFile), " ")
    Open sFile For Binary As #MyFile
    Get #MyFile, , tmp
    Opt = Split(tmp, vbNewLine)
    Close #MyFile
    MsgBox Opt(0)

Вот, я добавил пару строчек в виде объявления переменных и мессажбокса в конце. Работает, удивительно?

Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Re: Как считать файл в массив?

Сообщение Alexandrius » 11.11.2009 (Ср) 23:11

Заработало
Код: Выделить всё
    Dim s As String
    Dim Opt() As String
    MyFile = FreeFile
    Open (App.Path & "\Options.txt") For Input As #MyFile
        s = Input$(LOF(1), 1)
    Close #MyFile
    arrOpt = Split(s, vbCrLf)


Может не работало из-за режима Binary или из-за константы перевода строки? В любом случае, спасибо, что на правильную мысль натолкнул.
Visual Basic 2008


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList