Работа с текстовыми файлами...

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

Работа с текстовыми файлами...

Сообщение Vovik » 26.09.2003 (Пт) 14:57

Как в текстовом файле найти определённый символ, а после него
считать в переменную X-кол-во строк, до другого определённого символа??

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 26.09.2003 (Пт) 15:27

Все равно придется считывать строки с первой и анализировать на наличие необходимых символов. А после замыкающего символа - закрывать файл.
Понимаешь? (с)Б.Ельцин.

Мика
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 08.06.2003 (Вс) 10:27

Сообщение Мика » 26.09.2003 (Пт) 21:59

Я думаю придется использовать MID()

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 27.09.2003 (Сб) 22:29

Ducis писал(а):Все равно придется считывать строки с первой и анализировать на наличие необходимых символов. А после замыкающего символа - закрывать файл.

А как это сделать??? :shock:

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 27.09.2003 (Сб) 23:51

Кнопка - Command1, Текстовые поля - Text1, Text2, Text3:

' Файл < 2 Мб, иначе "n1 as double, n2 as double"
Private Sub Command1_Click()
dim s as string, n1 as long, n2 as long, l as long

open Text1 for binary as #1
s = space(lof(1))
get #1,,s
close #1

n1 = instr(s, Text2)
n2 = instr(n1, s, Text3)
s = mid(s, n1, n2-n1)
l = ubound(split(vbLf, s))+1

msgbox "Количество строк в файле "+Text1+" с символа "+Text2+" до символа "+Text3+" равно "+cstr(l)
End Sub

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Сообщение Demonx » 27.09.2003 (Сб) 23:57

можно типа так:

' Переменная Data содержит инфу из файла
' Sym1 = Первый символ
' Sym2 = Второй символ
pos1 = InStr(1, Data, Sym1)
pos2 = InStr(pos1, Data, Sym2)
colstr = UBound(Split(Mid(Data, pos1, pos2 - pos1), vbCrLf))
MsgBox colstr

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Сообщение Demonx » 27.09.2003 (Сб) 23:57

Ой уже ответили :oops:
ShadowCaster, чутка с кодом ты ошибся :roll:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 28.09.2003 (Вс) 10:08

Спасибо большое за помощь!!! Я понял с помощью вас свою ошибку!!! :lol:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 28.09.2003 (Вс) 12:42

:oops: Упс....У меня ещё один маленький вопросик...
А если мне надо не один символ, а несколько???
например вот такое : [#video] или [*smk]

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Сообщение Demonx » 28.09.2003 (Вс) 15:58

Vovik писал(а)::oops: Упс....У меня ещё один маленький вопросик...
А если мне надо не один символ, а несколько???
например вот такое : [#video] или [*smk]

Вот так:
Код: Выделить всё
'Data - инфа из файла
'Sym1 - [#video]
'Sym2 - [*smk]
Dim Data As String, Pos1 As Integer, Pos2 As Integer, Ln As String, ColStr As Integer
Pos1 = InStr(1, Data, Sym1)
Pos2 = InStr(Pos1 + Len(Sym1), Data, Sym2)
Ln = Mid(Data, Pos1 + Len(Sym1), Pos2 - (Pos1 + Len(Sym1)))
ColStr = UBound(Split(Ln, vbNewLine)) + 1
MsgBox "Строк: " & ColStr

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 28.09.2003 (Вс) 19:30

Спасибо большое!!!! Очень помог...А то я с этими строками мало работал...(не приходилось). :lol:


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

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

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

    TopList