Работа со строками в текстовом файле >>

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
el-niko
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 17.09.2004 (Пт) 20:15
Откуда: Елец

Работа со строками в текстовом файле >>

Сообщение el-niko » 25.09.2004 (Сб) 17:12

У меня есть файл tekst.txt В нём содержится следующий текст:

Николай
Каверин
el-niko@mail.ru

Подскажите пожалуйста, как сме считать содержимое 1-й строчки, записать в переменную; затем содержимое 2-й строчки и тоде записать в переменную и т.д....

Заранее спасибо...

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 25.09.2004 (Сб) 17:23

Код: Выделить всё
dim sLine1 As String, sLine2 As String, sLine3 As String

Open "tekst.txt" For Input As #1
    Input #1, sLine1
    Input #1, sLine2
    Input #1, sLine3
Close #1

MsgBox sLine1 & vbCrLf & sLine2 & vbCrLf & sLine3, vbInformation
On Fatal Error Resume Next

el-niko
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 17.09.2004 (Пт) 20:15
Откуда: Елец

Сообщение el-niko » 25.09.2004 (Сб) 18:05

а если у меня в файле будет 100 строк ил больше?.. есть ещё какой-нибудь способ? например как-нить таймером это всё окучить или т.п...
=)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.09.2004 (Сб) 18:28

Во-первых, Line input :)
Во-вторых, do until eof(1).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 25.09.2004 (Сб) 18:53

Ну ладно GSerg, каюсь!
Вот один из таких способов...

Код: Выделить всё
Dim arrLines() As String
Dim lngItem As Long

Open "tekst.txt" For Input As #1

    Do Until EOF(#1).
        ReDim Preserve arrLines(lngItem)
        Line Input #1, arrLines(lngItem)
        lngItem = lngItem + 1
    Loop

Close #1

MsgBox "17 строка: " & arrLines(16)    'т.к. 1 строка начинается с 0
On Fatal Error Resume Next

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.09.2004 (Сб) 19:17

Eduard писал(а):Ну ладно GSerg, каюсь!
Вот один из таких способов...

Код: Выделить всё
Dim arrLines() As String
Dim lngItem As Long

Open "tekst.txt" For Input As #1

    Do Until EOF(#1).
        ReDim Preserve arrLines(lngItem)
        Line Input #1, arrLines(lngItem)
        lngItem = lngItem + 1
    Loop

Close #1

MsgBox "17 строка: " & arrLines(16)    'т.к. 1 строка начинается с 0


Рулез. А вот то же самое вдвое короче:
Код: Выделить всё
Dim arrLines As Variant

Open "tekst.txt" For Input As #1

   arrLines = Split(Input(LOF(1), 1), vbCrLf)

Close #1

MsgBox "17 строка: " & arrLines(16)    'т.к. 1 строка начинается с 0
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.09.2004 (Сб) 19:47

А ежели в файле токмо vbCr (бывают такие оптимизации)? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.09.2004 (Сб) 19:55

GSerg писал(а):А ежели в файле токмо vbCr (бывают такие оптимизации)? :)

Тогда
Код: Выделить всё
Dim arrLines As Variant

Open "tekst.txt" For Input As #1

   arrLines = Split(Replace(Input(LOF(1), 1), vbCrLf, vbCr), vbCr)

Close #1

MsgBox "17 строка: " & arrLines(16)    'т.к. 1 строка начинается с 0
Изображение

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 25.09.2004 (Сб) 19:57

В очереной раз спасибо за науку
Код: Выделить всё
Open "tekst.txt" For Input As #1

   arrLines = Split(Input(LOF(1), 1), vbCrLf)

Close #1

Вы не желаете издать, что-то вроде советов по оптимизации?

el-niko
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 17.09.2004 (Пт) 20:15
Откуда: Елец

Сообщение el-niko » 25.09.2004 (Сб) 20:53

Народ, а как узнить, сколько вообще строк в файле ? =) (простите за ламерский вопрос)
=)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.09.2004 (Сб) 21:19

Тыришь все строки, считая при этом...
Или ubound(split)+1.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 26.09.2004 (Вс) 13:31

А вообще для текстовухи лучше юзать FSO - вот что рулит сегодня!
On Fatal Error Resume Next

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.09.2004 (Вс) 14:35

Eduard писал(а):А вообще для текстовухи лучше юзать FSO - вот что рулит сегодня!
А завтра модным будет какой-нибудь OFS (ObjectFileSystem), и что, всем переучиваться?
Погоня за модой - смешно.
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 27.09.2004 (Пн) 9:07

А вообще для текстовухи лучше юзать FSO - вот что рулит сегодня!


Глючит оно зачастую :(

Несколько раз пытался заюзать в разных программах но натыкался на глюки - в основном при обработке большого числа файлов. Одиночные файлы обрабатывает как правило нормально, а вот когда файлов много (обработка в цыкле) то возникают проблемы (код на 100% был верен). Какие уж именно не помню за давностью, но приходилось просто отказываться от FSO и обрабатывать файлы обычным способом...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 4

    TopList  
cron