Вверх ↑
Этот топик читают: Гость
Ответов: 1891
Рейтинг: 110
#1: 2010-09-09 18:15:14 ЛС | профиль | цитата
Дан такой текст:
тест
scode 2142 part01-http://site.cd.ru/107124
scode 2142 part02-http://site.cd.ru/107126
scode 2142 part03-http://site.cd.ru/107131
scode 2142 part04-http://site.cd.ru/107137
scode 2142 part05-http://site.cd.ru/107141
scode 2142 part06-http://site.cd.ru/107145
scode 2142 part07-http://site.cd.ru/107148
scode 2142 part08-http://site.cd.ru/107152
scode 2142 part09-http://site.cd.ru/107155
scode 2142 part10-http://site.cd.ru/107158
scode 2142 part11-http://site.cd.ru/107162
scode 2142 part12-http://site.cd.ru/107166
scode 2142 part13-http://site.cd.ru/107169
scode 2142 part14 http://site.cd.ru/107175 repack
scode 2142 part15-http://site.cd.ru/107176
scode 2142 part16-http://site.cd.ru/107180
scode 2142 part17 http://site.cd.ru/107181
scode 2142 part18-http://site.cd.ru/107183-repack
scode 2142 part19-http://site.cd.ru/107187
scode 2142 part20-http://site.cd.ru/107191
scode 2142 part21-http://site.cd.ru/107237
scode 2142 part22-http://site.cd.ru/107239

Может кто предложит оптимальный вариант выбора из текста всех ссылок вида http://site.cd.ru/107239 без повторений?
карма: 0
%time%
0
Ответов: 397
Рейтинг: 34
#2: 2010-09-09 18:21:21 ЛС | профиль | цитата
Black-Light, из http://site.cd.ru/107183-repack, нужно убрать -repack


исправил

Add(MainForm,2953706,259,210){
Width=306
link(onCreate,12792025:doEnum,[])
}
Add(StrList,3395919,308,161)
{
Strings=#42:scode 2142 part01-http://site.cd.ru/107124|42:scode 2142 part02-http://site.cd.ru/107126|42:scode 2142 part03-http://site.cd.ru/107131|42:scode 2142 part04-http://site.cd.ru/107137|42:scode 2142 part05-http://site.cd.ru/107141|42:scode 2142 part06-http://site.cd.ru/107145|42:scode 2142 part07-http://site.cd.ru/107148|42:scode 2142 part08-http://site.cd.ru/107152|42:scode 2142 part09-http://site.cd.ru/107155|42:scode 2142 part10-http://site.cd.ru/107158|42:scode 2142 part11-http://site.cd.ru/107162|42:scode 2142 part12-http://site.cd.ru/107166|42:scode 2142 part13-http://site.cd.ru/107169|49:scode 2142 part14 http://site.cd.ru/107175 repack|42:scode 2142 part15-http://site.cd.ru/107176|42:scode 2142 part16-http://site.cd.ru/107180|42:scode 2142 part17 http://site.cd.ru/107181|49:scode 2142 part18-http://site.cd.ru/107183-repack|42:scode 2142 part19-http://site.cd.ru/107187|42:scode 2142 part20-http://site.cd.ru/107191|42:scode 2142 part21-http://site.cd.ru/107237|42:scode 2142 part22-http://site.cd.ru/107239|
}
Add(StrCat,4518265,364,224)
{
Str2=" "
link(onStrCat,7436475:doReplace,[])
}
Add(BlockFind,3896043,448,224)
{
StartBlock="http://"
EndBlock=" "
link(onSearch,13813765:doTrim,[])
}
Add(ArrayEnum,12792025,322,224)
{
link(onItem,4518265:doStrCat,[])
link(Array,3395919:Array,[])
}
Add(Trim,13813765,497,224)
{
link(onTrim,1112227:doValue,[])
}
Add(Memo,9778033,679,224)
{
Left=5
Top=5
Width=280
Height=250
ScrollBars=2
link(Str,1112227:Value,[(685,207)(586,207)(586,273)(552,273)])
}
Add(Position,15725171,595,224)
{
ZeroPos=0
ShortSearch=1
link(onSearch,2652911:doCompare,[])
link(Str,9778033:Text,[(601,212)(633,212)(633,280)(685,280)])
}
Add(If_else,2652911,637,224)
{
Op2=Integer(0)
link(onTrue,9778033:doAdd,[])
}
Add(Memory,1112227,546,224)
{
link(onData,15725171:doSearch,[])
}
Add(Replace,7436475,406,224)
{
SubStr="-"
DestStr=" "
link(onReplace,3896043:doSearch,[])
}
карма: 0

1
Голосовали:Alexbootch
Ответов: 1891
Рейтинг: 110
#3: 2010-09-09 18:25:35 ЛС | профиль | цитата
Black-Light, из http://site.cd.ru/107183-repack, нужно убрать -repack
карма: 0
%time%
0
Ответов: 4641
Рейтинг: 334
#4: 2010-09-09 18:54:44 ЛС | профиль | цитата
если структура идентичная то можно так.
code_20506.txt
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_20506.txt [1.7KB] [162]
Ответов: 1891
Рейтинг: 110
#5: 2010-09-09 19:08:50 ЛС | профиль | цитата
Ravilr, структура разная, ссылки одного вида, только цифры разные
карма: 0
%time%
0
Ответов: 397
Рейтинг: 34
#6: 2010-09-09 19:11:57 ЛС | профиль | цитата
Alexbootch, мой вариант как?
карма: 0

0
Ответов: 4641
Рейтинг: 334
#7: 2010-09-09 19:17:14 ЛС | профиль | цитата
прошлый мой вариант не корректный... уж лучше так

Add(MainForm,1133722,126,147)
{
link(onCreate,3739739:doEnum,[])
}
Add(StrList,6056073,175,91)
{
Strings=#42:scode 2142 part01-http://site.cd.ru/107124|42:scode 2142 part02-http://site.cd.ru/107126|42:scode 2142 part03-http://site.cd.ru/107131|42:scode 2142 part04-http://site.cd.ru/107137|42:scode 2142 part05-http://site.cd.ru/107141|42:scode 2142 part06-http://site.cd.ru/107145|42:scode 2142 part07-http://site.cd.ru/107148|42:scode 2142 part08-http://site.cd.ru/107152|42:scode 2142 part09-http://site.cd.ru/107155|42:scode 2142 part10-http://site.cd.ru/107158|42:scode 2142 part11-http://site.cd.ru/107162|42:scode 2142 part12-http://site.cd.ru/107166|42:scode 2142 part13-http://site.cd.ru/107169|49:scode 2142 part14 http://site.cd.ru/107175 repack|42:scode 2142 part15-http://site.cd.ru/107176|42:scode 2142 part16-http://site.cd.ru/107180|42:scode 2142 part17 http://site.cd.ru/107181|49:scode 2142 part18-http://site.cd.ru/107183-repack|42:scode 2142 part19-http://site.cd.ru/107187|42:scode 2142 part20-http://site.cd.ru/107191|42:scode 2142 part21-http://site.cd.ru/107237|42:scode 2142 part22-http://site.cd.ru/107239|
}
Add(ArrayEnum,3739739,189,161)
{
link(onItem,11906508:doCopy,[])
link(Array,6056073:Array,[])
}
Add(Memo,12763144,315,161)
{
Left=10
Top=25
Width=360
Height=225
ScrollBars=3
}
Add(Copy,11906508,252,161)
{
Position=19
Count=24
link(onCopy,12763144:doAdd,[])
}



На на сколько изменяется структура... неужели серединка сдвигается или как? или все таки по маске прогонять и искать блоки?
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1891
Рейтинг: 110
#8: 2010-09-09 20:08:13 ЛС | профиль | цитата
Ravilr, писал(а):
На на сколько изменяется структура... неужели серединка сдвигается или как? или все таки по маске прогонять и искать блоки?


Может был любое текстовое начало и/или конец, может и не быть начала и/или конца. Циферок в ссылках тоже может быть любое число.


------------ Дoбавленo в 20.08:
Black-Light, писал(а):
Alexbootch, мой вариант как?


При добавлении непосредственно в StrList - работает, а при получении текста через ClipboardHook не правильно работает

Сам посмотри:


Add(MainForm,6218968,140,140)
{
Width=306
}
Add(StrList,3395919,245,91)
{
}
Add(StrCat,4518265,301,154)
{
Str2=" "
link(onStrCat,7436475:doReplace,[])
}
Add(BlockFind,3896043,385,154)
{
StartBlock="http://"
EndBlock=" "
link(onSearch,13813765:doTrim,[])
}
Add(ArrayEnum,12792025,252,154)
{
link(onItem,4518265:doStrCat,[])
link(Array,3395919:Array,[(258,141)(265,141)])
}
Add(Trim,13813765,434,154)
{
link(onTrim,1112227:doValue,[])
}
Add(Memo,9778033,616,154)
{
Left=5
Top=5
Width=280
Height=250
ScrollBars=2
link(Str,1112227:Value,[(622,137)(523,137)(523,203)(489,203)])
}
Add(Position,15725171,532,154)
{
ZeroPos=0
ShortSearch=1
link(onSearch,2652911:doCompare,[])
link(Str,9778033:Text,[(538,142)(570,142)(570,210)(622,210)])
}
Add(If_else,2652911,574,154)
{
Op2=Integer(0)
link(onTrue,9778033:doAdd,[])
}
Add(Memory,1112227,483,154)
{
link(onData,15725171:doSearch,[])
}
Add(Replace,7436475,343,154)
{
SubStr="-"
DestStr=" "
link(onReplace,3896043:doSearch,[])
}
Add(ClipboardHook,10617364,140,98)
{
NextHook=1
link(onChange,8278099:doEvent1,[])
}
Add(Hub,8278099,189,98)
{
link(onEvent1,3395919:doAdd,[(219,104)(219,97)])
link(onEvent2,12792025:doEnum,[(235,111)(235,160)])
}


и попробуй скопировать из моего выпадающего списка тест
карма: 0
%time%
0
Ответов: 16884
Рейтинг: 1239
#9: 2010-09-09 21:11:15 ЛС | профиль | цитата
Alexbootch, а так ?
Alexbootch писал(а):
попробуй скопировать из моего выпадающего списка тест


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1project30_123.rar [731B] [67]
Голосовали:Alexbootch
Ответов: 1891
Рейтинг: 110
#10: 2010-09-09 21:54:03 ЛС | профиль | цитата
Tad, писал(а):
Alexbootch, а так ?


Tad, так работает, но есть одно но... если в буфере есть уже ссылка на скачанный файл - он повторно будет закачан.
карма: 0
%time%
0
Ответов: 16884
Рейтинг: 1239
#11: 2010-09-09 23:16:58 ЛС | профиль | цитата
Alexbootch, ну даешь ! У тебя в Мемо список. Перед добавлением в Memo нужно (с самого начала) проверять - есть такой или нет. И повторов не будет.

------------ Дoбавленo в 23.16:
Alexbootch, хотел поставить таймер для опроса буфера через две секунды (чтобы проверить отсеивание повторов) и схема перестала работать
А ты не пробовал ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)