Как сделать цикл считывания текст. файла построчно?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Как сделать цикл считывания текст. файла построчно?

Сообщение Maitris » 15.03.2005 (Вт) 15:53


В файле 605 строк, надо их каждую отдельно обработать.
Как ему объяснить какую именно строку я хочу? :D

Строчки типа такие:

ORANGE
LIGHT
SNOW
THUNDER

и т.д.
----

Морфий
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 119
Зарегистрирован: 11.01.2005 (Вт) 18:06

Сообщение Морфий » 15.03.2005 (Вт) 16:00

Возможно это прокатит:

Код: Выделить всё
Dim strsplit as variant
Open xfile For Binary As #F
flen = LOF(F)
Str = Input(flen, F)
Close #F
SplitStr = Split(Str, vbCrLf) ' получаешь массив со всеми строками
Вот оно — счастье...

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 15.03.2005 (Вт) 16:01

dim f as integer

Код: Выделить всё
f=freefile
open "c:\1.txt" for input as f
do while not eof(f)
   input #f,tempstring
   if tempstring="LIGHT" then
      ......
   endif
loop
close f

наверное так, если я правильно понял.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 15.03.2005 (Вт) 16:13

kif Да нет, мне просто надо к каждой строчке кое-что прибавить, т.е. это слово для вставки в предложение.

В ручную заколебаться можно, т.к. 605 строк, вот мне надо автоматизировать этот процесс...
Последний раз редактировалось Maitris 15.03.2005 (Вт) 16:38, всего редактировалось 1 раз.
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 15.03.2005 (Вт) 16:18

kif
Точнее так можно сказать, просто мне к каждой строчке надо прибавить кое-какой текст + vbCrLf
и добавить это в тестовое поле.

Все, изменил чуть-чуть и все ок :)
----

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 15.03.2005 (Вт) 17:13

вот код быстрого считывания файла:
Код: Выделить всё
    Dim Fso As New FileSystemObject, FileManager, tmp_Mas() As String
   
    Set FileManager = Fso.OpenTextFile("имя файла")
    ReDim tmp_Mas(0)
   
    Do While FileManager.AtEndOfStream <> True
        ReDim Preserve tmp_Mas(UBound(tmp_Mas) + 1)
        tmp_Mas(UBound(tmp_Mas)) = FileManager.ReadLine
    Loop


1. массиве tmp_Mas будут все твои строки
2. количество записей Ubound (tmp_Mas)

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 15.03.2005 (Вт) 17:21

А что значит Preserve? Я несколько раз уже сталкивался с этим определением, но не въехал, что оно значит...
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 15.03.2005 (Вт) 17:30

Preserve сохраняет содержимое массива при ReDim'е. Про это есть в хелпе по VB/VBA.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 15.03.2005 (Вт) 17:40

Морфий писал(а):Возможно это прокатит:

Код: Выделить всё
Dim strsplit as variant
Open xfile For Binary As #F
flen = LOF(F)
Str = Input(flen, F)
Close #F
SplitStr = Split(Str, vbCrLf) ' получаешь массив со всеми строками

Кстати, а попробуй с помощью этого кода получить текст reg-файла. Т.е. экспортируй в любую ветку из реестра и получи текст этого файла. :wink: :roll:
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 15.03.2005 (Вт) 19:15

dim Filestr() as string

open "c:\1.txt" for input as #1

i=lof(1)

redim filestr(1 to i)

for q = 1 to i
line input #1, txt
filestr(i) = txt & "SomeText" & vbcrlf
next
close #1

open "C:\1.txt" for output as #1
for w = 1 to i
print #1, filestr(i)
next
close #1

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

Сообщение alibek » 16.03.2005 (Ср) 8:40

LOF это не количество строк, это размер файла :)
Для режима INPUT размер указывается в блоках (размер разделенный на 128, округленный вверх).
Lasciate ogni speranza, voi ch'entrate.


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

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

Сейчас этот форум просматривают: Google-бот и гости: 147

    TopList  
cron