Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по работе со строками / 18 сообщений из 18, страница 1 из 1
15.11.2010, 18:59
    #36958097
SEOMR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
Здравствуйте уважаемые форумчане, сегодня столкнулся с проблемой, необходимо написать простенькую программу, суть которой заключается в сравнении строк, но вот в чем загвоздка: мне нужно сравнивать строки не по принципу = или <>, а по принципу того, что сравниваемая строка содержит исходную строку, то есть:
Исходная строка - http://www.sql.ru/
Строки, с которыми сравниваем -
http://www.sql.ru/forum/actualpost.aspx?bid=22
http://www.sql.ru/forum/actualpost.aspx?bid=23
http://www.sql.ru/forum/actualpost.aspx?bid=24
http://www.google.com.ua/

Мне нужно проверить содержат ли строки исходную строку, если да, то удалить их.
Вот и вся программа, но проблема в том, что я просто не знаю как проверить "содержит" или нет.
...
Рейтинг: 0 / 0
15.11.2010, 19:04
    #36958103
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
функция instr()
...
Рейтинг: 0 / 0
15.11.2010, 19:38
    #36958156
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMR, функция Like
...
Рейтинг: 0 / 0
15.11.2010, 19:42
    #36958167
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
InStr быстрее.
...
Рейтинг: 0 / 0
15.11.2010, 19:54
    #36958190
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
автор же просил не по не по принципу = или <>
Вот и будет ему Труе и Фальше
...
Рейтинг: 0 / 0
15.11.2010, 19:59
    #36958202
SEOMR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
Большое спасибо всем отписавшимся. Все работает, сейчас перепишу только свою программу с учетом данной функции, а то до этого мне приходилось приводить все сайты, с которыми я сравниваю основную базу к виду site.ru, даже прогу мне написали для этого.
Кстати, хотел поинтересоваться, может кто подскажет: мне на Delphi написали программу, которая преобразовывает урлы типа _http://www.sql.ru/forum/actualpost.aspx?bid=22&tid=806238&mid=0&p=1 в _http://www.sql.ru, вот сижу ломаю голову как этого добиться. Забить все доменные зоны в программу и искать по маске, к примеру, .ru и удалять все, что справа или может как-нибудь по другому можно этого добиться?
...
Рейтинг: 0 / 0
15.11.2010, 20:03
    #36958207
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMR, помоему всё что слева от третьего слеша
...
Рейтинг: 0 / 0
15.11.2010, 20:05
    #36958214
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
а что у того кто на дельфях написал
http://www.sql.ru/forum/actualpost.aspx?bid=22&tid=806238&mid=0&p=1
http://www.sql.ru
посмотреть\спросить никак???
...
Рейтинг: 0 / 0
15.11.2010, 20:09
    #36958221
SEOMR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
в том то и дело, что нет, так как урлы можно подставлять и без _http://
Хотя можно проверять есть ли _http:// в строке и выбирать после какого слеша чистить, если есть, то после третьего, если нет, то после первого.
Но так как я новичек в ВБА, то мне пока порой сложно определиться насколько оптимален путь решения данной задачи.
А скорость имеет большое значение, так как к обработке у меня частенько десятки тысяч урлов, а иногда и больше.
...
Рейтинг: 0 / 0
15.11.2010, 20:13
    #36958226
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMR,
>десятки тысяч урлов, а иногда и больше
то есть сотни тысяч урлов?????????
С ума сойти по мне так хоть как решать всё долго
...
Рейтинг: 0 / 0
15.11.2010, 20:50
    #36958272
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMRв том то и дело, что нет, так как урлы можно подставлять и без _http://
Хотя можно проверять есть ли _http:// в строке и выбирать после какого слеша чистить, если есть, то после третьего, если нет, то после первого.
Но так как я новичек в ВБА, то мне пока порой сложно определиться насколько оптимален путь решения данной задачи.
А скорость имеет большое значение, так как к обработке у меня частенько десятки тысяч урлов, а иногда и больше.
если начало строки - _http:// (см. функцию Left) то искать InStr начиная не с первого символа, а с девятого и до первого слеша или конца строки
...
Рейтинг: 0 / 0
16.11.2010, 06:43
    #36958569
.Михаил.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
Ципихович ЭндрюSEOMR, помоему всё что слева от третьего слеша
Я бы делал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function getHost(ByVal url As String) As String
Dim pos As Integer
url = Replace(url, "http://", "")
pos = InStr(url, "/")
If pos >  0  Then
    getHost = Mid(url,  1 , pos -  1 )
Else
    getHost = url
End If
End Function
...
Рейтинг: 0 / 0
16.11.2010, 06:45
    #36958570
.Михаил.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
Забыл добавить после этого
Код: plaintext
1.
url = Replace(url, "http://", "")
вот это
Код: plaintext
1.
url = Replace(url, "https://", "")
...
Рейтинг: 0 / 0
16.11.2010, 14:30
    #36959480
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMR
можно вырезать имя самого домейна через регулярное выражение
будет достаточно быстро
...
Рейтинг: 0 / 0
16.11.2010, 15:57
    #36959782
SEOMR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
.Михаил.Забыл добавить после этого
Код: plaintext
1.
url = Replace(url, "http://", "")
вот это
Код: plaintext
1.
url = Replace(url, "https://", "")


Спасибо за совет, но мне не нужно убирать из урла http://.
Я уже написал код с использованием InStr и Mid, который отлично работает.
...
Рейтинг: 0 / 0
16.11.2010, 18:36
    #36960272
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMR

а если ссылка у тебя начинается на https://
или на ftp://

может такое быть или нет ?
...
Рейтинг: 0 / 0
16.11.2010, 21:24
    #36960517
SEOMR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
Сделаю проверку на наличие http://, https://, а фтп-шников у меня не будет.
...
Рейтинг: 0 / 0
16.11.2010, 23:19
    #36960662
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе со строками
SEOMRСделаю проверку на наличие http://, https://, а фтп-шников у меня не будет.Ты лучше сделай проверку на наличие "://" и то что слева - протокол, то что справа - адрес.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по работе со строками / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]