Вверх ↑
Ответов: 1266
Рейтинг: 47
#1: 2013-03-13 00:23:41 ЛС | профиль | цитата
Это был я.
------------ Дoбавленo в 00.23:
Вот сделал схему с динамическим обновлением списка серверов времени с официального сайта. Все работает автоматически, после первого найденного доступного сервера перебор останавливается.

Add(MainForm,2953706,21,105)
{
Width=429
Height=484
link(onCreate,11063823:doEvent1,[(93,125)(93,433)])
}
Add(Button,7077563,56,434)
{
Left=5
Top=405
link(onClick,11063823:doEvent2,[])
}
Add(Hub,12843293,413,476)
{
link(onEvent1,3728331:doData,[(469,482)(469,531)])
link(onEvent2,13258130:doTimer,[(439,489)(439,510)(401,510)(401,531)])
}
Add(TCP_Client,96010,224,273)
{
Port=37
IP="64.90.182.55"
Point(onError)
Point(onProgress)
link(onRead,1759785:doEvent1,[(268,279)(268,251)])
link(onConnect,2560363:doChangeValue,[(310,286)(310,209)])
link(onDisconnect,8497380:doChangeValue,[(310,293)(310,244)])
link(IP,2614948:Text,[(230,251)(167,251)])
link(Port,13213040:Text,[(244,251)(223,251)])
link(onError,2299999:doText,[(272,300)(272,321)])
}
Add(ListBox,14313,350,245)
{
Left=70
Top=85
Width=315
Height=70
Font=[Arial,8,0,0,1]
}
Add(Button,67336,49,273)
{
Left=10
Top=85
Font=[Arial,8,0,0,1]
Caption="open"
link(onClick,2979057:doEvent2,[(110,279)(110,286)])
}
Add(Edit,2614948,161,196)
{
Left=15
Top=20
Width=155
Text="=IP="
}
Add(Edit,13213040,217,196)
{
Left=205
Top=20
Text="13"
}
Add(LED,8497380,434,238)
{
Left=315
Top=190
}
Add(LED,2560363,434,203)
{
Left=260
Top=190
ColorOn=65280
ColorOff=32768
}
Add(Label,2299999,287,315)
{
Left=230
Top=235
}
Add(Button,9402568,49,315)
{
Left=10
Top=125
Caption="close"
link(onClick,96010:doClose,[(153,321)(153,286)])
}
Add(HTTP_Get,1515275,238,427)
{
URL="http://tf.nist.gov/tf-cgi/servers.cgi"
link(onDownload,1501220:doConvert,[])
}
Add(InfoTip,3854809,371,567)
{
Info=#71:Чаще 1 запроса в 4 секунды нельзя обращаться - заблокируют как ДДОСера.|
Width=113
Height=109
}
Add(Convertor,1501220,308,434)
{
Mode=11
link(onResult,13379094:doSearch,[])
}
Add(BlockFind,13379094,364,434)
{
IncludeBlock=1
StartBlock="<td align = "center">"
EndBlock="</td>"
link(onSearch,4704333:doSel,[(429,440)(429,426)])
link(onEndSearch,12843293:doEvent1,[(404,447)(404,482)])
}
Add(Memo,10666517,602,427)
{
@Hint=#12:64.90.182.55|12:96.47.67.105|15:165.193.126.229|15:165.193.126.232|15:206.246.122.250|11:129.6.15.28|11:129.6.15.29|11:129.6.15.30|12:64.236.96.53|14:98.175.203.200|14:64.250.177.145|14:207.223.123.18|14:216.171.120.36|14:96.226.123.157|13:50.77.217.185|11:64.113.32.5|14:66.219.116.140|13:216.229.0.179|13:24.56.178.140|13:132.163.4.101|13:132.163.4.102|13:132.163.4.103|14:128.138.140.44|15:128.138.141.172|11:198.60.73.8|14:64.250.229.100|14:131.107.13.100|14:216.228.192.69|14:207.200.81.113|11:69.25.96.13|14:216.171.124.36|14:64.147.116.229|
Left=90
Top=270
Width=295
Height=160
ScrollBars=2
}
Add(DoData,3728331,511,525)
{
link(onEventData,13810955:doMax,[(551,531)(551,524)])
link(Data,10666517:Count,[(517,502)(615,502)])
}
Add(InlineCode,4704333,462,420)
{
@Hint=#34:Фильтрация цифр, букв, знаков и IP|0:|46:http://forum.hiasm.com/forum.html?q=3&p=174194|0:|
WorkPoints=#5:doSel|
EventPoints=#4:SelD|4:SelA|4:SelR|4:SelZ|5:SelIP|
DataPoints=#3:Str|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|18: SelD:THI_Event;|18: SelA:THI_Event;|18: SelR:THI_Event;|18: SelZ:THI_Event;|19: SelIP:THI_Event;|17: Str:THI_Event;|48: Procedure doSel(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|28:Procedure THiAsmClass.doSel;|16:var s,ip:string;|18: i,clr:integer;|5:begin|9:clr := 0;|77: s:=ReadString(_Data,Str,''); //читаем строку из потока или верхней точки|80: If s='' then exit; // если строка пустая, то выходим из процедуры|57: For i:=1 to Length(s) do // берём по одной букве|8: begin|54: If s[i] in['0'..'9'] then // проверка на цифры|12: begin |31: _hi_onEvent(SelD,s[i]); |46: If s[1] in['0'..'9'] then ip:= ip+s[i];|17: Continue; |9: end|70: else if s[i] in['A'..'Z','a'..'z'] then // проверка на английский|12: begin |30: _hi_onEvent(SelA,s[i]);|15: clr:=1; |17: Continue; |9: end|67: else if s[i] in['А'..'Я','а'..'я'] then // проверка на русский|12: begin |31: _hi_onEvent(SelR,s[i]); |29: clr:=1; |17: Continue; |9: end|15: else begin |40: _hi_onEvent(SelZ,s[i]); // знаки|60: If s[1] in['0'..'9'] then if s[i]='.' then ip:= ip+s[i];|29: If s[i]=':' then clr:=1; |9: end;|7: end;|0:|42: If clr = 0 then _hi_onEvent(SelIP,ip); |28: //_hi_onEvent(SelIP,clr);|3: |4:end;|4:end.|
link(SelIP,10666517:doAdd,[(548,454)(548,433)])
}
Add(Hub,11063823,133,427)
{
InCount=2
link(onEvent1,1515275:doDownload,[])
}
Add(Hub,12723812,98,252)
{
link(onEvent1,2614948:doText,[(147,258)(147,202)])
link(onEvent2,2979057:doEvent1,[(122,265)(122,279)])
}
Add(Hub,2979057,133,273)
{
InCount=2
link(onEvent1,96010:doOpen,[])
}
Add(Hub,1759785,287,245)
{
link(onEvent1,14313:doAdd,[])
link(onEvent2,13258130:doStop,[(357,258)(357,538)])
}
Add(Timer,13258130,413,525)
{
Interval=5000
Enable=1
link(onTimer,13810955:doNext,[(503,531)(503,510)])
}
Add(ArrayRW,11105775,616,504)
{
link(onRead,12723812:doEvent1,[(660,510)(660,391)(86,391)(86,258)])
link(Array,10666517:Array,[])
}
Add(CounterEx,13810955,560,504)
{
Default=-1
Point(doReset)
Point(onThroughMax)
Point(doMax)
link(onNext,11105775:doRead,[])
}



карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0