Поиск в тексте

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mix
Новичок
Новичок
Аватара пользователя
 
Сообщения: 26
Зарегистрирован: 01.11.2004 (Пн) 19:04
Откуда: Россия, Новокузнецк

Поиск в тексте

Сообщение Mix » 09.11.2004 (Вт) 19:14

Например у меня есть файл .тхт :shock:
Мне нужно узнать текст (13 :evil: символов) после такой стороки - <font face=Arial size=2 color=#000000>
Также нужен текст после второй такой же строчки...
:wink:
Клан -=S.A.L.K.E.R.=-
"И я говорю - мы победим, господь нас уважает!!!" (c) DDT

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.11.2004 (Вт) 19:41

Код: Выделить всё
Dim pos As Long
Dim txt as String

pos=InStr(1,text,"<font face=Arial size=2 color=#000000>")
if pos=0 then
msgbox "Некорректный файл!"
else
txt=mid$(text,pos,13)
end if


Кажется, так. Писал на память, так что полную точность не гарантирую. Для текста после второй строчки то же самое, но вызывая InStr с параметром (pos+1)

Mix
Новичок
Новичок
Аватара пользователя
 
Сообщения: 26
Зарегистрирован: 01.11.2004 (Пн) 19:04
Откуда: Россия, Новокузнецк

Сообщение Mix » 10.11.2004 (Ср) 12:09

Хм..Что - то не то...
Уменя в txt получается <font face=Ar
Клан -=S.A.L.K.E.R.=-
"И я говорю - мы победим, господь нас уважает!!!" (c) DDT

Mix
Новичок
Новичок
Аватара пользователя
 
Сообщения: 26
Зарегистрирован: 01.11.2004 (Пн) 19:04
Откуда: Россия, Новокузнецк

Сообщение Mix » 10.11.2004 (Ср) 12:11

Или можно из текста вывести только слова на русском?
Клан -=S.A.L.K.E.R.=-
"И я говорю - мы победим, господь нас уважает!!!" (c) DDT

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

Сообщение Ruslan Demidow » 10.11.2004 (Ср) 12:20

Mix писал(а):Хм..Что - то не то...
Уменя в txt получается <font face=Ar


Код: Выделить всё
Dim pos As Long
Dim txt as String
Dim sSearchString As String

sSearchString="<font face=Arial size=2 color=#000000>"

pos=InStr(1,text,sSearchString)
if pos=0 then
msgbox "Некорректный файл!"
else
txt=mid$(text,pos+Len(sSearchString),13)
end if


Попробуй так. Должно вывести первые 13 символов после искомой строки.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Mix
Новичок
Новичок
Аватара пользователя
 
Сообщения: 26
Зарегистрирован: 01.11.2004 (Пн) 19:04
Откуда: Россия, Новокузнецк

Сообщение Mix » 10.11.2004 (Ср) 16:59

Вот код...
Код: Выделить всё
Private Sub Command1_Click()
Dim vData As Variant
Dim a As Integer, b As Integer
Dim pos1, pos2
Dim txt As String
vData = Me.Inet1.OpenURL("http://informer.gismeteo.ru/text/29846-1.JS", icString)
Open App.Path & "\Geo.txt" For Output As #1
Print #1, vData
pos1 = InStr(1, vData, "<font face=Arial size=2 color=#FFFFFF><b>")
pos2 = InStr(1, vData, "</b>")
pos1 = pos1 + 38
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
Label5.Caption = "г." & txt
pos1 = InStr(1, vData, "<font face=Arial size=2 color=#000000>")
pos2 = InStr(1, vData, "</b>")
pos1 = pos1 + 38
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
lblData.Caption = txt
pos1 = InStr(3, vData, "<font face=Arial size=2 color=#000000>")
pos2 = InStr(1, vData, "<br>")
pos1 = pos1 + 41
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
lblOblak.Caption = txt
pos1 = InStr(3, vData, "<br>")
pos2 = InStr(3, vData, "</font>")
pos1 = pos1 + 4
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
lblOsadk.Caption = txt
pos1 = InStr(1, vData, "<font face=Arial size=2 color=#000000><b>")
pos2 = InStr(4, vData, "</b>")
pos1 = pos1 + 41
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
lblTemp.Caption = txt
pos1 = InStr(2, vData, "<font face=Arial size=2 color=#000000><b>")
pos2 = InStr(5, vData, "</b>")
pos1 = pos1 + 41
pos2 = pos2 - pos1
txt = Mid$(vData, pos1, pos2)
lblWeter.Caption = txt
Close #1
End Sub

В чём ошибка..
Вот прога...
Вложения
Погода.rar
Погода
(24.93 Кб) Скачиваний: 18
Клан -=S.A.L.K.E.R.=-
"И я говорю - мы победим, господь нас уважает!!!" (c) DDT

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

Сообщение Igor_123 » 10.11.2004 (Ср) 19:28

Привет!

Я понимаю (сам такой) лень разбиратся в позициях, возьми посиди в отладчике и пораставляй правильные начальные позиции в функциях InStr. А ещё лучше, вырезал кусок, откуси все, что не нужно и продолжай искать.

Несколько вопросов:
1 - зачем сохраняеш в файл так
сделай так -
Код: Выделить всё
Open App.Path & "\Geo.txt" For Output As #1
    Print #1, vData
Close #1

А потом разбирай строку
2 -
Код: Выделить всё
Private Sub Command1_Click()

If Inet1.StillExecuting Then Exit Sub

а дальше остальной код

3 - Это наверное в первую очередь поставь Option Explicit
и исправ ошибки.

4 - переназови рисунки, например "pic1.gif","pic2.gif","pic3.gif"
тогда становится ненужен Select Case
просто делаеш
Код: Выделить всё
imgA.Picture = LoadPicture(App.Path & "\pict\pic" & CStr(a) & ".gif")

или добавь ресурсный файл и грузи из него функцией LoadResPicture
MSDN писал(а):Loads a bitmap, icon, or cursor from a resource (.res) file.

Syntax

LoadResPicture(index, format)

The LoadResPicture function syntax has these parts:

Part Description
index Required. Integer or string specifying the identifier (ID) of the data in the resource file. The resource whose ID is 1 is reserved for the application icon.
format Required. Value or constant that specifies the format of the data being returned, as described in Settings.


Settings

The settings for format are:

Constant Value Description
vbResBitmap 0 Bitmap resource
vbResIcon 1 Icon resource
vbResCursor 2 Cursor resource


Remarks

You can use the LoadResPicture function instead of referring to graphics stored in the Picture property of a Form or controls.

Storing bitmaps, icons, or cursors in and accessing them from resource files improves load time because you can load them individually as needed from the resource file, rather than all at once when a Form is loaded.

Using LoadResPicture is useful for localizing a Visual Basic application because the resources that need to be translated are isolated in one resource file and there is no need to access the source code or recompile the application.


тогда нет необходимости носить за собой папку с рисунками

5 - Включи обработку ошибок, например на превышение интервала ожидания ответа(RequestTimeout)

Молодец! Когда доделаеш, покажеш результат?


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

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

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

    TopList