Вверх ↑
Ответов: 3889
Рейтинг: 362
#1: 2011-12-07 02:41:32 ЛС | профиль | цитата
Neo писал(а):
а ведь и правда загадка

Ну, особой загадки загадки для посвящённых тут нет, хэш поддерживается ТОЛЬКО для данных типа stream, string, integer и real. Bitmap - отдельный, не поддерживаемый тип данных.
------------ Дoбавленo в 02.13:
hitman249, Индусский метод (схема автора топика с минимальными изменениями):

Add(MainForm,9408146,175,63)
{
Height=435
}
Add(ScreenShort,16357142,574,231)
{
link(onCapture,15737688:doLoad,[])
}
Add(Button,10184002,133,210)
{
Left=10
Top=5
Data=String(gfdhfdhgf)
link(onClick,9213231:doEvent1,[])
}
Add(Img_Copy,12379554,511,378)
{
Point(Width)
Point(Height)
Point(Result)
link(onCopy,11653070:doEvent1,[])
link(Source,15737688:Bitmap,[(517,367)(622,367)])
link(X,3321133:Result,[(524,362)(482,362)])
link(Y,2603742:Result,[(531,356)(496,356)])
link(Width,7629770:Var3,[(538,271)])
link(Height,1101479:Var3,[(545,264)])
}
Add(Screen,8210909,504,161)
{
}
Add(Hub,3200720,469,210)
{
link(onEvent1,6569629:doOperation,[])
link(onEvent2,656069:doOperation,[(501,223)(501,230)])
}
Add(Math,6569629,504,210)
{
OpType=3
Op2=8
link(Op1,8210909:Width,[])
}
Add(Math,656069,518,224)
{
OpType=3
Op2=8
link(Op1,8210909:Height,[(524,200)(517,200)])
}
Add(Math,3321133,476,287)
{
OpType=2
link(Op1,7629770:Var1,[(482,271)])
link(Op2,6635726:Position,[(489,275)(389,275)(389,329)(356,329)])
}
Add(Math,2603742,490,301)
{
OpType=2
link(Op1,1101479:Var1,[(496,264)])
link(Op2,6814331:Position,[(503,289)(427,289)(427,338)(286,338)])
}
Add(GetDataEx,7629770,504,266)
{
link(Data,6569629:Result,[])
}
Add(GetDataEx,1101479,518,259)
{
link(Data,656069:Result,[])
}
Add(Hub,11170893,441,287)
{
link(onEvent1,3321133:doOperation,[])
}
Add(Hub,9213231,203,210)
{
OutCount=3
link(onEvent1,3200720:doEvent1,[])
link(onEvent2,16357142:doCapture,[(359,223)(359,237)])
link(onEvent3,6814331:doFor,[(252,230)(252,293)])
}
Add(For,6635726,350,287)
{
Start=1
End=7
link(onEvent,1698200:doEvent1,[])
}
Add(Hub,1698200,399,287)
{
link(onEvent1,11170893:doEvent1,[])
link(onEvent2,12379554:doCopy,[(437,300)(437,384)])
}
Add(Bitmap,15737688,616,231)
{
}
Add(For,6814331,280,287)
{
Start=1
End=7
link(onEvent,10532982:doEvent1,[(317,293)(317,349)])
}
Add(Hub,10532982,322,343)
{
link(onEvent1,2603742:doOperation,[(409,349)(409,307)])
link(onEvent2,6635726:doFor,[(343,356)(343,293)])
}
Add(ListBox,15599374,693,420)
{
Left=95
Top=10
Width=250
Height=375
}
Add(BitmapStream,8329442,644,371)
{
link(Stream,13756969:Var2,[])
}
Add(MemoryStream,13187425,644,308)
{
}
Add(Hashsum,10008621,644,420)
{
link(onResult,15599374:doAdd,[])
link(Data,13756969:Var1,[(650,407)(689,407)(689,348)])
}
Add(Hub,11653070,567,378)
{
OutCount=3
link(onEvent1,8329442:doWrite,[])
link(onEvent2,10008621:doHashsum,[(613,391)(613,426)])
link(onEvent3,13187425:doClear,[(600,398)(600,449)(631,449)(631,321)])
}
Add(GetDataEx,13756969,644,343)
{
link(Data,13187425:Stream,[])
}

[offtop]Хотя CRC и быстрее MD5, промежуточная конверсия в поток, а потом ещё и в HEX убила бы преимущество начисто потому оставил md5. Самое оптимальное решение тут будет, пардон за поминание всуе, хэширование напрямую участков экрана на IC. Самое быстрое - на ассемблеречистом C, на которых серьёзные кодеки и сервера терминалов, собственно, и пишут.[/offtop]
------------ Дoбавленo в 02.24:
Почему doClear? Вариант с doPosition медленнее и больше по размеру.
------------ Дoбавленo в 02.41:
Вариант автора топика + небольшое секретное кунг-фу:

Add(Memory,5685907,546,371)
{
Default=Integer(0)
}
Add(Button,10184002,168,266)
{
Left=10
Top=5
Data=String(gfdhfdhgf)
link(onClick,9213231:doEvent1,[])
}
Add(Img_Copy,12379554,546,434)
{
DrawSource=1
Point(Width)
Point(Height)
Point(Result)
link(onCopy,11653070:doEvent1,[])
link(Source,5685907:Value,[])
link(X,3321133:Result,[(559,418)(517,418)])
link(Y,2603742:Result,[(566,412)(531,412)])
link(Width,7629770:Var3,[(573,327)])
link(Height,1101479:Var3,[(580,320)])
}
Add(Screen,8210909,539,217)
{
}
Add(Hub,3200720,504,266)
{
link(onEvent1,6569629:doOperation,[])
link(onEvent2,656069:doOperation,[(536,279)(536,286)])
}
Add(Math,6569629,539,266)
{
OpType=3
Op2=8
link(Op1,8210909:Width,[])
}
Add(Math,656069,553,280)
{
OpType=3
Op2=8
link(Op1,8210909:Height,[(559,256)(552,256)])
}
Add(Math,3321133,511,343)
{
OpType=2
link(Op1,7629770:Var1,[(517,327)])
link(Op2,6635726:Position,[(524,331)(424,331)(424,385)(391,385)])
}
Add(GetDataEx,7629770,539,322)
{
link(Data,6569629:Result,[])
}
Add(GetDataEx,1101479,553,315)
{
link(Data,656069:Result,[])
}
Add(Hub,11170893,476,343)
{
link(onEvent1,3321133:doOperation,[])
}
Add(Hub,9213231,238,266)
{
OutCount=3
link(onEvent1,3200720:doEvent1,[])
link(onEvent3,6814331:doFor,[(287,286)(287,349)])
}
Add(For,6635726,385,343)
{
Start=1
End=7
link(onEvent,1698200:doEvent1,[])
}
Add(Hub,1698200,434,343)
{
link(onEvent1,11170893:doEvent1,[])
link(onEvent2,12379554:doCopy,[(472,356)(472,440)])
}
Add(For,6814331,315,343)
{
Start=1
End=7
link(onEvent,10532982:doEvent1,[(352,349)(352,405)])
}
Add(Hub,10532982,357,399)
{
link(onEvent1,2603742:doOperation,[(444,405)(444,363)])
link(onEvent2,6635726:doFor,[(378,412)(378,349)])
}
Add(ListBox,15599374,728,476)
{
Left=95
Top=10
Width=250
Height=375
}
Add(BitmapStream,8329442,679,427)
{
link(Stream,13756969:Var2,[])
}
Add(MemoryStream,13187425,679,364)
{
}
Add(Hashsum,10008621,679,476)
{
link(onResult,15599374:doAdd,[])
link(Data,13756969:Var1,[(685,463)(724,463)(724,404)])
}
Add(Hub,11653070,602,434)
{
OutCount=3
link(onEvent1,8329442:doWrite,[])
link(onEvent2,10008621:doHashsum,[(648,447)(648,482)])
link(onEvent3,13187425:doClear,[(635,454)(635,505)(666,505)(666,377)])
}
Add(GetDataEx,13756969,679,399)
{
link(Data,13187425:Stream,[])
}
Add(Math,2603742,525,357)
{
OpType=2
link(Op1,1101479:Var1,[(531,320)])
link(Op2,6814331:Position,[(538,345)(462,345)(462,394)(321,394)])
}


карма: 1

1
Голосовали:Neo