Вверх ↑
Ответов: 2202
Рейтинг: 675
#1: 2022-07-02 18:00:57 ЛС | профиль | цитата
Udokanec, как вариант использовать вот такой алгоритм:

Add(MainForm,2953706,280,301)
{
Width=422
Height=413
link(onCreate,11747147:doEnum,[])
}
Add(StrList,15880991,364,245)
{
Strings=#5:a.png|5:e.png|5:a.png|5:b.png|5:a.png|5:b.png|5:c.png|5:d.png|5:e.png|5:f.png|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,13458699:doCompare,[])
AddHint(54,-195,42,130,Strings)
}
Add(Memo,2318742,623,273)
{
Left=85
Top=40
Width=185
Height=295
}
Add(ArrayEnum,11747147,378,315)
{
Type=1
link(onItem,15880991:doGetIndex,[(416,321)(416,307)(352,307)(352,293)])
link(Array,15880991:Array,[])
AddHint(47,13,35,13,Type)
}
Add(Hub,9249669,504,259)
{
OutCount=3
link(onEvent1,15880991:doDelete,[(527,265)(527,223)(346,223)(346,265)])
link(onEvent2,5061365:doGetString,[(530,272)(530,314)])
link(onEvent3,5061365:doDelete,[])
}
Add(If_else,13872552,455,252)
{
Op2=Integer(-1)
link(onFalse,9249669:doEvent1,[])
AddHint(-3,34,24,13,Op2)
}
Add(If_else,13458699,413,252)
{
Type=5
link(onTrue,13872552:doCompare,[])
link(Op2,11747147:Index,[(426,240)(495,240)(495,369)(391,369)])
}
Add(StrList,5061365,553,259)
{
Strings=#15:d:\\test1\a.png|15:d:\\test1\e.png|15:d:\\test2\a.png|15:d:\\test1\b.png|14:d:\\test\a.png|14:d:\\test\b.png|14:d:\\test\c.png|14:d:\\test\d.png|14:d:\\test\e.png|14:d:\\test\f.png|
Point(doGetIndex)
Point(onGetIndex)
Point(doGetString)
Point(onGetString)
link(onGetString,2318742:doAdd,[])
AddHint(-79,-209,89,130,Strings)
}
Add(Label,7553020,623,224)
{
Left=140
Top=15
Width=58
Height=17
Caption="дубликаты"
}
Обратите внимание что перебор идет снизу вверх. И файлы эталонной папки нужно добавить в конец списка (можно обычной маской в конец списка добавлять).
Вот набросок:


Add(Button,1032059,161,280)
{
Left=290
Top=5
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,287,280)
{
Left=290
Top=30
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,9717498:doSearch,[])
}
Add(Edit,8494145,245,280)
{
Left=60
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,203,280)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,329,280)
{
Ext="*.png"
TimeType=1
link(onSearch,16306322:doEvent1,[])
link(onEndSearch,2351151:doEnum,[(368,293)(368,398)])
link(Dir,8494145:Text,[(342,268)(151,268)(151,324)(251,324)])
}
Add(FilePartElm,10083864,406,322)
{
link(onPart,7637184:doAdd,[])
}
Add(Hub,16306322,378,280)
{
link(onEvent1,5061365:doAdd,[(635,286)(635,342)])
link(onEvent2,10083864:doPart,[(402,293)(402,328)])
}
Add(MainForm,2953706,168,350)
{
Width=422
Height=413
}
Add(StrList,7637184,462,322)
{
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,13458699:doCompare,[])
}
Add(Memo,2318742,721,350)
{
Left=85
Top=40
Width=185
Height=295
}
Add(ArrayEnum,2351151,476,392)
{
Type=1
link(onItem,7637184:doGetIndex,[(514,398)(514,384)(450,384)(450,370)])
link(Array,7637184:Array,[])
AddHint(47,13,35,13,Type)
}
Add(Hub,9249669,602,336)
{
OutCount=3
link(onEvent1,7637184:doDelete,[(625,342)(625,300)(454,300)(454,342)])
link(onEvent2,5061365:doGetString,[(628,349)(628,391)])
link(onEvent3,5061365:doDelete,[])
}
Add(If_else,13872552,553,329)
{
Op2=Integer(-1)
link(onFalse,9249669:doEvent1,[])
AddHint(-3,34,24,13,Op2)
}
Add(If_else,13458699,511,329)
{
Type=5
link(onTrue,13872552:doCompare,[])
link(Op2,2351151:Index,[(524,317)(594,317)(594,432)(489,432)])
}
Add(StrList,5061365,651,336)
{
Point(doGetIndex)
Point(onGetIndex)
Point(doGetString)
Point(onGetString)
link(onGetString,2318742:doAdd,[])
}
Add(Label,7553020,721,301)
{
Left=320
Top=70
Width=58
Height=17
Caption="дубликаты"
}
Последовательность добавления и очистку списка думаю сами сможете доделать.
карма: 11

0