Вверх ↑
Этот топик читают: Гость
Ответов: 6
Рейтинг: 0
#1: 2018-11-06 20:17:16 ЛС | профиль | цитата
Может кому пригодиться

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,378,140)
{
Width=464
Height=83
Caption="Выборка книг"
Position=1
}
Add(Menu,8492650,168,217)
{
Menu=#4:Файл|1:(|4:пуск|7:открыть|1:-|5:Выход|1:)|11:О программе|0:|0:|
link(onSelectStr,7832778:doCase,[])
}
Add(Case,7832778,231,217)
{
Value=String(пуск)
link(onNextCase,15504655:doCase,[])
link(onTrue,6465967:In,[(269,230)(269,265)])
}
Add(Case,15504655,280,217)
{
Value=String(Выход)
link(onNextCase,7075252:doCase,[])
link(onTrue,2022990:In,[(343,230)(343,265)])
}
Add(LineBreak,2137941,308,161)
{
Caption="Выход"
link(Out,2953706:doClose,[])
Primary=[2022990,49,98]
}
Add(ChildForm,11045761,371,91)
{
}
BEGIN_SDK
Add(EditMulti,3535455,21,21)
{
WorkCount=1
link(doWork1,10635631:doVisible,[(87,27)(87,76)])
}
Add(MainForm,10635631,126,42)
{
Left=35
Top=105
Width=234
Height=55
Visible=1
Caption="О программе"
Position=1
Point(doVisible)
}
Add(Label,1028014,112,119)
{
Width=218
Height=262
Align=2
Caption="Версия 2.0"
Alignment=2
}
END_SDK
Add(Case,7075252,364,217)
{
Value=String(О программе)
link(onNextCase,2653523:doCase,[])
link(onTrue,3114415:In,[(408,230)(408,265)])
}
Add(LineBreak,5685147,273,91)
{
Caption="О программе"
link(Out,11045761:doWork1,[])
Primary=[3114415,147,168]
}
Add(HTTP_Get,14278177,399,399)
{
link(onDownload,14566123:doConvert,[])
link(onStop,5501861:doWork1,[(450,426)(450,461)])
link(URL,10991252:Var2,[])
}
Add(LineBreak,15984920,287,399)
{
Caption="пуск"
link(Out,7615272:doWork2,[])
Primary=[6465967,-7,-140]
}
Add(Convertor,14566123,546,406)
{
Mode=11
link(onResult,8720144:doAdd,[])
}
Add(BlockFind,7335078,623,476)
{
StartBlock="‹table width="100%" border='0px'›"
EndBlock="‹a href="/lib/"
link(onSearch,11676741:doEvent1,[])
link(Text,8720144:Text,[])
}
Add(StrList,8720144,623,406)
{
}
Add(BlockFind,8639205,728,427)
{
IncludeBlock=1
StartBlock="‹div class="news_title" ›"
EndBlock="‹/div›"
link(onSearch,12050681:doSplit,[])
}
Add(Charset,13118690,861,427)
{
Type=7
link(onCharset,10831617:doValue,[])
}
Add(MultiStrData,12050681,784,427)
{
Char="/"
Count=4
link(onPart4,13118690:doCharset,[(838,454)(838,433)])
}
Add(StrCatDelim,6423056,938,476)
{
Delimiter=";"
link(onStrCatDlm,6374920:doAdd,[])
link(Str2,10831617:Value,[(951,468)(923,468)])
}
Add(BlockFind,6733192,728,483)
{
IncludeBlock=1
StartBlock="id="poll_mark1"
EndBlock="‹/div›"
link(onSearch,6393578:doSplit,[])
}
Add(Hub,11676741,672,476)
{
link(onEvent1,8639205:doSearch,[(707,482)(707,433)])
link(onEvent2,6733192:doSearch,[])
}
Add(MultiStrData,6393578,784,483)
{
Char=":"
link(onPart2,12265149:doTrim,[(824,496)(824,489)])
}
Add(Trim,12265149,847,483)
{
Mode=7
link(onTrim,6423056:doStrCatDlm,[(909,489)(909,482)])
}
Add(Memory,10831617,917,427)
{
}
Add(StringTable,6374920,1029,476)
{
Left=5
Top=30
Width=435
Height=750
Visible=1
Columns=#9:оценка=50|10:авторы=450|0:|
Grid=0
Redaction=1
Point(onColumnClick)
Point(doSort)
Point(FileName)
}
Add(MultiElement,5501861,462,455)
{
link(onEvent1,10046086:doEvent1,[(502,461)(502,503)])
link(onEvent2,13151973:doEvent1,[(558,468)(558,482)])
link(Data1,10991252:Var3,[(468,369)])
}
BEGIN_SDK
Add(EditMulti,880546,21,21)
{
EventCount=2
WorkCount=1
DataCount=1
Width=979
link(doWork1,10589717:doSplit,[(35,27)(35,55)])
}
Add(MultiStrData,10589717,49,49)
{
Char="/"
From=4
Count=1
link(Str,12922202:Var2,[])
link(onPart1,9468949:doOperation,[])
}
Add(Math,9468949,105,49)
{
Op2=1
ResultType=0
link(onResult,1030392:doCase,[])
}
Add(Case,1030392,161,49)
{
Value=Integer(1000)
link(onNextCase,14398382:doData,[])
link(onTrue,880546:onEvent2,[(204,62)(204,34)])
}
Add(DoData,14398382,217,49)
{
link(onEventData,15536469:doWork2,[])
link(Data,12922202:Var3,[(223,40)])
}
Add(GetDataEx,12922202,49,35)
{
link(Data,880546:Data1,[(27,35)])
}
Add(Memory,1909260,287,49)
{
link(onData,14360364:doCopy,[])
}
Add(Copy,14360364,343,49)
{
Position=1
Count=1
Direction=1
link(onCopy,7908605:doCase,[])
}
Add(Case,7908605,399,49)
{
Value=String(/)
link(onNextCase,10410667:doLength,[])
link(onTrue,6638849:doStrCat,[(448,62)(448,125)])
}
Add(Delete,4017943,518,49)
{
Position=0
Count=1
link(onDelete,15536469:doWork1,[(564,55)(564,105)(256,105)])
link(Str,15256052:Var3,[(524,33)])
link(Position,10410667:Result,[(531,37)(489,37)(489,93)(461,93)])
}
Add(Length,10410667,455,49)
{
link(onLength,4017943:doDelete,[])
link(Str,15256052:Var2,[])
}
Add(GetDataEx,15256052,455,28)
{
link(Data,1909260:Value,[(461,27)(389,27)(389,91)(293,91)])
}
Add(HubEx,15536469,252,49)
{
link(onEvent,1909260:doValue,[])
}
Add(StrCat,6638849,504,119)
{
link(onStrCat,880546:onEvent1,[(768,125)(768,27)])
link(Str1,15256052:Var1,[(510,97)(452,97)(452,33)])
link(Str2,9468949:Result,[(517,100)(111,100)])
}
END_SDK
Add(Hub,10046086,511,497)
{
link(onEvent1,7420087:In,[])
link(onEvent2,5622978:In,[(532,510)(532,524)])
}
Add(LineBreak,1772076,343,322)
{
Caption="1"
link(Out,15774427:doText,[])
Primary=[7420087,196,175]
}
Add(HubEx,7615272,357,399)
{
link(onEvent,14278177:doDownload,[])
}
Add(LineBreak,3973545,322,441)
{
Caption="2"
link(Out,7615272:doWork3,[(361,447)])
Primary=[5622978,217,77]
}
Add(Message,8668441,623,546)
{
Message="загрузилось"
}
Add(GetDataEx,10991252,399,364)
{
link(Data,15774427:Caption,[])
}
Add(Hub,13151973,567,476)
{
OutCount=3
link(onEvent1,7335078:doSearch,[])
link(onEvent2,12484208:In,[(602,489)(602,531)])
link(onEvent3,8668441:doMessage,[(591,496)(591,552)])
}
Add(LineBreak,5479120,896,539)
{
Caption="3"
link(Out,10910493:doExecute,[])
Primary=[12484208,-273,-14]
}
Add(SDialog,10910493,952,539)
{
link(onExecute,6374920:doSave,[(1006,545)(1006,510)])
link(onCancel,2402836:doMessage,[(996,552)(996,559)])
}
Add(Message,2402836,1008,553)
{
Message="не очень то \r\nи хотелось"
}
Add(Case,2653523,427,217)
{
Value=String(открыть)
link(onTrue,2504378:doWork1,[])
}
Add(ChildForm,2504378,504,224)
{
}
BEGIN_SDK
Add(EditMulti,4800773,21,21)
{
WorkCount=2
DataCount=1
link(doWork1,9172370:doVisible,[(59,27)(59,83)])
}
Add(MainForm,9172370,84,49)
{
Left=35
Top=105
Width=627
Height=823
Visible=1
Caption="просмотр"
Point(doVisible)
}
Add(StringTable,14987379,105,161)
{
Width=611
Height=785
Align=5
Grid=0
Point(FileName)
Point(doSort)
Point(onColumnClick)
link(FileName,11461843:Value,[(118,118)(272,118)])
link(onColumnClick,14987379:doSort,[(147,174)(147,214)(93,214)(93,202)])
}
Add(Memory,11461843,266,63)
{
Default=String(G:\\1.txt)
link(onData,14987379:doLoad,[(310,69)(310,129)(93,129)(93,188)])
}
Add(ODialog,8816433,210,63)
{
link(onExecute,11461843:doValue,[])
}
Add(Button,14593591,161,63)
{
Left=185
Top=150
Align=4
Caption="выбор файла"
link(onClick,8816433:doExecute,[])
}
END_SDK
Add(Label,15774427,399,322)
{
Left=5
Top=5
Width=435
Height=20
Caption="http://fantasy-worlds.org/lib/1"
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2018-11-06 23:45:27 ЛС | профиль | цитата
Пример.

Add(MainForm,10465548,98,364)
{
Width=609
Height=578
Caption="Выборка книг"
Position=1
}
Add(HTTP_Get,14278177,392,427)
{
link(onDownload,14566123:doConvert,[])
link(onStop,11757595:doWork3,[(433,454)(433,469)(193,469)])
}
Add(Convertor,14566123,441,434)
{
Mode=11
link(onResult,7335078:doSearch,[])
}
Add(BlockFind,7335078,483,434)
{
StartBlock=""news_title" >"
EndBlock="</table>"
link(onSearch,12646200:doSearch,[])
}
Add(Label,15774427,392,378)
{
Left=150
Top=5
Width=435
Height=20
Color=12639424
Font=[Courier New,11,1,0,204]
Caption=""
AutoSize=1
}
Add(StringTable,6374920,623,434)
{
Left=5
Top=40
Width=585
Height=485
Columns=#9:Автор=250|9:Книга=250|0:|
StrDelimiter="—"
Grid=0
Redaction=1
StaticColumn=0
Point(onColumnClick)
Point(doSort)
Point(FileName)
Point(doEnsureVisible)
Point(EndIdx)
}
Add(Charset,12309979,574,434)
{
Type=7
link(onCharset,6374920:doAdd,[])
}
Add(FormatStr,6916570,315,420)
{
DataCount=1
Mask="http://fantasy-worlds.org/lib/%1"
link(onFString,11133744:doEvent1,[])
}
Add(Math,1693847,231,420)
{
Op2=1
ResultType=0
Point(doDefault)
link(onResult,3148737:doCompare,[])
link(Op1,1693847:Result,[(237,408)(225,408)(225,464)(237,464)])
}
Add(HubEx,11757595,189,420)
{
link(onEvent,1693847:doOperation,[])
}
Add(Hub,1876692,147,413)
{
link(onEvent1,1693847:doDefault,[(206,419)(206,433)])
link(onEvent2,11757595:doWork2,[])
}
Add(BlockFind,12646200,525,434)
{
IncludeBlock=1
StartBlock="'>"
EndBlock="</h1>"
link(onSearch,12309979:doCharset,[])
}
Add(Hub,11133744,357,420)
{
link(onEvent1,15774427:doText,[(385,426)(385,384)])
link(onEvent2,14278177:doDownload,[])
}
Add(Button,1723652,91,413)
{
Left=15
Top=5
Caption="Пуск"
link(onClick,1876692:doEvent1,[])
}
Add(If_else,3148737,273,420)
{
Type=3
Op2=Integer(50)
link(onTrue,6916570:doString,[])
}


Редактировалось 1 раз(а), последний 2018-11-07 10:54:59
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 6
Рейтинг: 0
#3: 2018-11-26 15:16:45 ЛС | профиль | цитата
Tad,
Tad писал(а):
Пример.

Редактировалось 1 раз(а), последний 2018-11-07 10:54:59


без сомнения твой вариант намного интереснее
карма: 0

0
Ответов: 1925
Рейтинг: 172
#4: 2018-11-27 17:10:37 ЛС | профиль | цитата
http://hi-asm.blogspot.com/2010/04/parsing.html

Редактировалось 1 раз(а), последний 2018-11-27 17:13:26
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#5: 2018-11-28 11:08:37 ЛС | профиль | цитата
3042, не поленился - сходил по ссылке и ...
3042 писал(а):
Но дело в том, что на каждой странице там выводится только по 10 книг
Невероятно, но у меня по 15 или 16.
3042 писал(а):
Но проблема в том, что в такие теги заключены не только описания книг - в такие теги заключена одна из реклам, самая первая в HTML-коде. И её нужно отсеять. Для этого и нужен счётчик.
У меня включен Adblock Plus поэтому рекламы нет.
А рассуждениями о замене
http://www.knigka.info/category/pc/page/40
на
http://www.knigka.info/category/pc/page/39
был вообще убит наповал.
И осталось у меня всего 14 компонент

Add(MainForm,10169369,315,126)
{
Width=415
Height=139
Position=1
}
Add(Edit,516132,238,126)
{
Left=10
Top=10
Width=355
Text="http://www.knigka.info/category/pc/page/40"
}
Add(Button,11631586,175,196)
{
Left=365
Top=10
Width=20
Caption="+"
link(onClick,12164728:doWork2,[])
}
Add(HTTP_Get,10795978,238,196)
{
link(onDownload,10736984:doConvert,[])
link(onStop,8982015:doSplit,[])
link(URL,2935713:Var2,[])
}
Add(Convertor,10736984,490,203)
{
Mode=11
link(onResult,6530865:doSearch,[])
}
Add(BlockFind,6530865,532,203)
{
StartBlock="<table class="cblock">"
EndBlock="</table>"
link(onSearch,8113735:doAdd,[])
}
Add(GetDataEx,2935713,238,175)
{
link(Data,516132:Text,[])
}
Add(Hub,16738736,196,126)
{
link(onEvent1,516132:doText,[])
link(onEvent2,12164728:doWork3,[(221,139)])
}
Add(HubEx,12164728,217,196)
{
link(onEvent,10795978:doDownload,[])
}
Add(MultiStrData,8982015,280,217)
{
Char="/"
Count=1
Direct=1
link(Str,2935713:Var3,[(286,180)])
link(onPart1,14518333:doOperation,[])
}
Add(Math,14518333,336,217)
{
OpType=1
Op2=1
ResultType=0
link(onResult,8785145:doCompare,[])
}
Add(If_else,8785145,385,217)
{
Type=4
Op2=Integer(0)
link(onTrue,4414517:doStrCatDlm,[])
link(onFalse,8113735:doSave,[(579,230)(579,237)])
}
Add(StrCatDelim,4414517,434,217)
{
Delimiter="/"
link(onStrCatDlm,16738736:doEvent1,[(481,223)(481,266)(169,266)(169,132)])
link(Str1,8982015:RemaindStr,[(440,195)(323,195)(323,261)(286,261)])
}
Add(StrList,8113735,595,203)
{
FileName="file.html"
Strings=#6:<head>|35:<style type="text/css" media="all">|24: @import url(style.css);|25: @import url(engine.css);|8:</style>|23:<style type="text/css">|32: #registr {right:0; left:160px;}|17: .cdl {top:9px;}|18: .cdr {top:16px;}|35: .full .cdr {top:11px !important;}|33: .inf .cdr {top:9px !important;}|33: .faq .cdr {top:9px !important;}|8:</style>|7:</head>|0:|
Point(doSave)
}



Редактировалось 1 раз(а), последний 2018-11-28 11:09:27
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1925
Рейтинг: 172
#6: 2018-11-28 12:29:41 ЛС | профиль | цитата
Tad писал(а):
Невероятно, но у меня по 15 или 16.

Это было в 2010-м году

Tad писал(а):
У меня включен Adblock Plus поэтому рекламы нет.

В браузере рекламы нет или при скачивании через http_get тоже нет?

Tad писал(а):
А рассуждениями о замене
http://www.knigka.info/category/pc/page/40
на
http://www.knigka.info/category/pc/page/39
был вообще убит наповал.

Это было в 2010-м году
Сейчас, конечно, поступаю проще.
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#7: 2018-11-28 15:49:23 ЛС | профиль | цитата
3042 писал(а):
В браузере рекламы нет или при скачивании через http_get тоже нет?
В файле file.html рекламы нет.
3042 писал(а):
Это было в 2010-м году
Сейчас, конечно, поступаю проще.
Если ведёшь Блог о HiAsm | Видеоуроки по HiAsm, то не сворачивай на дату.
Ссылку http://hi-asm.blogspot.com/2010/04/parsing.html ты выложил 2018-11-27 17:10:37, а не в 2010 году.
Обновляй вовремя.
ИМХО.

Редактировалось 1 раз(а), последний 2018-11-28 15:52:37
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1925
Рейтинг: 172
#8: 2018-11-29 09:59:37 ЛС | профиль | цитата
Tad, ОК
карма: 9
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)