List - считывание с файлов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

List - считывание с файлов

Сообщение DKbelRoma » 30.12.2007 (Вс) 21:01

Немогу найти, как можно считать с txt файла (например) именно первую строчку или вторую в List1.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 30.12.2007 (Вс) 22:34

Как вариант, FSO, функция ReadLine.
Salus populi suprema lex

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

Сообщение Хакер » 30.12.2007 (Вс) 23:10

Код: Выделить всё
Dim sFirstLine As String
Dim sSecondLine as String

Open "Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!??" For Input as #1
     Line Input #1, sFirstLine
     Line Input #1, sSecondLine
Close #1
MsgBox "Первая строчка: [" + sFirstLine + "]"
MsgBox "Вторая строчка: [" + sSecondLine + "]"
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 30.12.2007 (Вс) 23:25

Спасибо. :wink: А как потом добавить эти строчки в List ???

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

Сообщение Хакер » 30.12.2007 (Вс) 23:25

MySuperListBox.Add "Ы!"
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 30.12.2007 (Вс) 23:26

Хакер ясно. Спасибо :wink:

[LEV&n]
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 113
Зарегистрирован: 17.10.2007 (Ср) 22:23
Откуда: Мариуполь

Сообщение [LEV&n] » 28.01.2008 (Пн) 13:28

Не легче ли так:?

Dim A As String 'Объявляем стринговую текущей строки, считываемой из файла
Dim g As Integer ' Объявляем индикатор строк, как переменную
Open Dir1.Path + "\" + File1.FileName For Input As #1
Do While Not EOF(1) 'Условие, «пока файл не будет считан до конца»
Input #1, A$
L_opn.AddItem A$ 'Поскольку файл может быть неограниченного размера, то было бы бессмысленным объявлять константу, допустим Dim A$ (1 to 100), это можно прописывать только в том случае, если размер файла не предполагает в себе превышения 100 строк, тем более, что объявление Dim A$ (1 to X) не предоставляется возможным и программа выдаёт сообщение о том, что это значение должно являться константой.
Loop
Close
Если исключить из всех производственных звеньев дураков, то актуальность обсуждения продуктов их жизнедеятельности (дороги, пр-во и т.п.) исчезнет сама по себе.

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

Сообщение Денис » 28.01.2008 (Пн) 13:55

[LEV&n]
Спокойно!
Постановка задачи немного иная: Вывести нужную строку из файла а на остальные забить. В случае если в файле меньше строк, вывести какой-нибудь код ошибки. И зачем тебе массив? :roll:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

[LEV&n]
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 113
Зарегистрирован: 17.10.2007 (Ср) 22:23
Откуда: Мариуполь

Сообщение [LEV&n] » 28.01.2008 (Пн) 14:12

Денис писал(а):[LEV&n]
Спокойно!
Постановка задачи немного иная: Вывести нужную строку из файла а на остальные забить. В случае если в файле меньше строк, вывести какой-нибудь код ошибки. И зачем тебе массив? :roll:
Я просто привык извлекать из примеров, только тот участок кода, который мне нужен, допустим извлечь первую строчку из листа можно следующим путём: g=0:label1=list1.list(g). Тем же самым путём, передвигая g и определяя тип записи, можно присваивать значения к ряду объектов.
Если исключить из всех производственных звеньев дураков, то актуальность обсуждения продуктов их жизнедеятельности (дороги, пр-во и т.п.) исчезнет сама по себе.

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

Сообщение Хакер » 28.01.2008 (Пн) 14:17

[LEV&n]
Ты в курсе, насколько то, что ты предлагаешь, ужасно?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Денис » 28.01.2008 (Пн) 14:32

[LEV&n]
Я тута в соседнем топике про индусский код написал, ты тока без обид, но вот совет: Все (практически абсолютно все) алгоритмы уже изобретены и оптимизированы. Никто не заставляет тебя собирать прогу из чужих кирпичей, но и никто не мешает тебе изучить все эти приемы. Источники известны: MSDN, поисковики, библиотеки кирпичей, одна из которых лежит прямо на этом форуме. Юзай :idea:

З.Ы. Во всем важна мера. Не перемудрить с чужими компонентами и не переусердствовать со своими, наспех придуманными алгоритмами.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

[LEV&n]
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 113
Зарегистрирован: 17.10.2007 (Ср) 22:23
Откуда: Мариуполь

Сообщение [LEV&n] » 28.01.2008 (Пн) 14:39

Хакер писал(а):[LEV&n]
Ты в курсе, насколько то, что ты предлагаешь, ужасно?
Нет, прошу пояснить, в чём причина его критичности, и что может произойти, если пустить его в ход?
Если исключить из всех производственных звеньев дураков, то актуальность обсуждения продуктов их жизнедеятельности (дороги, пр-во и т.п.) исчезнет сама по себе.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 28.01.2008 (Пн) 15:20

[LEV&n], вдумайся, что делает строка:
Код: Выделить всё
Input #1, A$

И в чем отличие от
Код: Выделить всё
Line Input #1, A$
Весь мир матрица, а мы в нем потоки байтов!

[LEV&n]
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 113
Зарегистрирован: 17.10.2007 (Ср) 22:23
Откуда: Мариуполь

Сообщение [LEV&n] » 28.01.2008 (Пн) 20:18

Viper писал(а):[LEV&n], вдумайся, что делает строка:
Код: Выделить всё
Input #1, A$

И в чем отличие от
Код: Выделить всё
Line Input #1, A$
Незнаю, по моему они идентичны.
Если исключить из всех производственных звеньев дураков, то актуальность обсуждения продуктов их жизнедеятельности (дороги, пр-во и т.п.) исчезнет сама по себе.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 28.01.2008 (Пн) 20:46

Line Input считывает одну строку из файла последовательного доступа и присваивает эту строку String переменной. Он считывает посимвольно строку, пока не встретит последовательность vbCrLf. Причем vbCrLf к считанной строке не добавляется.
Input считывает данные из файла последовательного доступа и присваивает их переменным. При чтении стандартной строки или числовых данных результат присваивается переменной без преобразования данныъх. Если же другие исходные данные, то происходят следующие преобразования:
Пустая строка - Empty
#NULL# - Null
#TRUE# (#FALSE#) - True (False)
#yyyy-mm-dd hh:mm:ss# - Дата (время)
#ERROR errornumber# - errornumber (переменная - Variant, помеченная как ошибка)
Подпись проходит рефакторинг

[LEV&n]
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 113
Зарегистрирован: 17.10.2007 (Ср) 22:23
Откуда: Мариуполь

Сообщение [LEV&n] » 28.01.2008 (Пн) 23:42

Lumen писал(а):Line Input считывает одну строку из файла последовательного доступа и присваивает эту строку String переменной. Он считывает посимвольно строку, пока не встретит последовательность vbCrLf. Причем vbCrLf к считанной строке не добавляется.
Input считывает данные из файла последовательного доступа и присваивает их переменным. При чтении стандартной строки или числовых данных результат присваивается переменной без преобразования данныъх. Если же другие исходные данные, то происходят следующие преобразования:
Пустая строка - Empty
#NULL# - Null
#TRUE# (#FALSE#) - True (False)
#yyyy-mm-dd hh:mm:ss# - Дата (время)
#ERROR errornumber# - errornumber (переменная - Variant, помеченная как ошибка)
Я добивался в работе принципа схожего действия несколько иным путём, импорта в текстбокс и рассмотрение строки, как совокупность символов. После этого по специальным из них, я мог оределить тип данных. К чему базар ведём-то?
Если исключить из всех производственных звеньев дураков, то актуальность обсуждения продуктов их жизнедеятельности (дороги, пр-во и т.п.) исчезнет сама по себе.

vpnacc
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 27.01.2008 (Вс) 1:31

Сообщение vpnacc » 29.01.2008 (Вт) 0:12

"базар" к тому что для достижения разных целей применяются соответсвующие средства...

можно и проще: по мухам из пушки не стреляют.


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

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

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

    TopList