Вверх ↑
Ответов: 824
Рейтинг: 138
#1: 2013-03-11 02:02:41 ЛС | профиль | цитата
1.1 Создаем копию конт.1
1.2 Заполняем списком строк
2.1 Создаем копию конт.2
2.2 Заполняем списком строк
.......
....... и т.д. если нужно
3. Завершили заполнение всех копий.
4.1 Начинаем активировать все, по очереди, копии контейнера (в цикле по индексу)
4.2 Запускаем подсчет количества символов в имени файла (в том же цикле)
Цикл обработал и больше не нужен. Енд = количество копий контейнера.

------------ Дoбавленo в 01.43:
Событие onStop в данном сл. не нужно.
------------ Дoбавленo в 01.49:
Об Енд, последнюю границу не включаем (или исключаем)
------------ Дoбавленo в 01.54:
Tad писал(а):
sashaoli, и исключи возможность повторного нажатия.

Об этом тоже думал и сделал, ток когда схему копировал это осталось в стороне.
И как то уж не хотелось читать какой я зас...ц и че в схеме нагородил.
Так что, напугали Вы меня своими постами....
------------ Дoбавленo в 02.02:
Tad писал(а):
(добавь красные компоненты)

У меня было вот так:
Add(MainForm,12733091,287,245)
{
Width=374
Height=153
BorderStyle=1
}
Add(Edit,11641370,651,112)
{
Left=140
Top=15
Width=215
Enabled=1
ColorSp=-16777215
Text=""
ReadOnly=0
}
Add(Button,15167945,371,112)
{
Left=10
Top=15
Width=125
Caption="Папка для анализа"
Point(doEnabled)
link(onClick,5279826:doBrowse,[])
}
Add(Browse,5279826,420,112)
{
Title="Select Pack Folder"
NewStyle=0
NewDirButton=1
link(onBrowse,429033:doEvent1,[])
}
Add(MultiElementEx,859352,595,371)
{
@Hint=#35:Схема вызывается для каждого потока|
Mode=1
link(onEnd,15432256:doNext,[])
link(StringArray,11850414:Array,[])
}
BEGIN_SDK
Add(EditMultiEx,9781944,21,14)
{
WorkCount=#5:##add|8:##select|24:doStart=Запускает процес|7:##clear|
EventCount=#28:onEnd=Работа схемы завершена|29:onResult=Результат вычислений|
VarCount=#7:##count|6:Result|12:##eventIndex|
DataCount=#32:StringArray=Масив путей к файлам|0:|
Width=363
Height=186
HOffset=30
Point(##add)
Point(##select)
Point(##clear)
Point(##count)
Point(##eventIndex)
link(##add,4378916:doEnum,[(41,20)(41,55)])
link(doStart,4978134:doEvent1,[(31,34)(31,118)])
link(Result,7600485:Result,[(64,180)(314,180)])
}
Add(StrList,2252093,189,49)
{
Point(Stream)
Point(doLoadFromStream)
}
Add(ArrayEnum,965417,203,112)
{
link(onItem,4290383:doLength,[])
link(onEndEnum,9781944:onEnd,[(244,125)(244,20)])
link(Array,2252093:Array,[])
}
Add(ArrayEnum,4378916,51,49)
{
link(onItem,2252093:doAdd,[])
link(Array,9781944:StringArray,[])
}
Add(Length,4290383,252,112)
{
link(onLength,7600485:doCalc,[])
}
Add(MathParse,7600485,308,112)
{
MathStr="%1+%0"
Point(doClear)
link(onResult,9781944:onResult,[(348,118)(348,27)])
link(X1,4290383:Result,[(314,100)(290,100)(290,153)(258,153)])
}
Add(Check,11721219,77,112)
{
link(onEvent,13322131:doWork2,[])
}
Add(Thread,2316962,140,140)
{
FastStop=0
link(onExec,13322131:doWork3,[(186,146)])
}
Add(HubEx,13322131,182,112)
{
link(onEvent,965417:doEnum,[])
}
Add(Check,1223278,77,140)
{
Check=1
link(onEvent,2316962:doStart,[])
}
Add(Hub,4978134,42,112)
{
link(onEvent1,11721219:doWork,[])
link(onEvent2,1223278:doWork,[(66,125)(66,146)])
}
END_SDK
Add(Hub,3855596,469,315)
{
link(onEvent1,11850414:doAdd,[])
link(onEvent2,15446539:doNext,[])
}
Add(Button,9416412,280,308)
{
Left=235
Top=50
Width=120
Caption="Анализировать"
Point(doEnabled)
link(onClick,2547659:doEvent1,[])
}
Add(Label,8815368,672,217)
{
Left=175
Top=55
}
Add(CounterEx,15446539,497,322)
{
@Hint=#48:Счетчик максимального количества файлов в потоке|
Max=500
Point(onThroughMax)
Point(doReset)
Point(doMax)
Point(Max)
Point(onSet)
link(onThroughMax,2451939:doEvent1,[])
link(onSet,2451939:doEvent2,[])
}
Add(StrList,11850414,581,315)
{
@Hint=#31:Список файлов для одного потока|19:Для каждого - новый|
}
Add(UpDown,6202415,483,210)
{
Left=150
Top=50
Max=6
Min=1
Position=2
Point(doEnabled)
link(onPosition,3444203:doEvent1,[])
}
Add(FileSearch,12643089,511,126)
{
@Hint=#35:Количество файлов в выбранной папке|
TimeType=1
link(onSearch,11221319:doAdd,[])
link(onEndSearch,11258217:doWork1,[(578,139)])
}
Add(Edit,12850526,560,224)
{
Left=115
Top=50
Width=35
Enabled=1
Text="2"
}
Add(MathParse,6828647,602,210)
{
MathStr="trunc(%2/%1)+1"
ResultType=0
link(onResult,8996694:doEvent1,[])
link(X1,6202415:Position,[(608,198)(475,198)(475,257)(489,257)])
link(X2,11221319:Count,[])
}
Add(Hub,429033,469,112)
{
OutCount=3
link(onEvent1,11641370:doText,[])
link(onEvent2,11221319:doClear,[(583,125)(583,139)])
link(onEvent3,12643089:doSearch,[])
}
Add(Hub,8996694,644,210)
{
link(onEvent1,14983954:In,[])
link(onEvent2,8815368:doText,[])
}
Add(Label,7620334,427,224)
{
Left=15
Top=55
Width=90
Height=17
Caption="Number of threads"
}
Add(LineBreak,3339554,455,336)
{
@Color=65535
Caption="MC"
Color=16711935
link(Out,15446539:doMax,[])
Primary=[14983954,259,-126]
}
Add(Hub,15965135,525,378)
{
link(onEvent1,12511257:doWork2,[])
link(onEvent2,859352:doStart,[])
}
Add(StyleXP,5108433,287,161)
{
}
Add(MathParse,13262560,679,483)
{
DataCount=1
MathStr="%1+%0"
ResultType=0
Point(onError)
Point(doClear)
link(onResult,6165163:doText,[])
link(X1,859352:Result,[(685,440)(608,440)])
}
Add(Label,15987890,777,483)
{
Left=15
Top=90
Width=59
Height=17
Caption="Результат:"
}
Add(Label,6165163,728,483)
{
Left=80
Top=90
}
Add(Hub,2547659,336,308)
{
OutCount=4
link(onEvent1,7243684:In,[(360,314)(360,307)])
link(onEvent2,1:doEnum,[])
link(onEvent3,15877871:In,[])
link(onEvent4,9795724:doFor,[(357,335)(357,384)])
}
Add(For,9795724,469,378)
{
@Hint=#31:Цикл запуска процесса в потоках|
IncludeEnd=1
link(onEvent,15965135:doEvent1,[])
link(End,9685680:Var1,[(482,366)(516,366)(516,416)])
}
Add(LineBreak,10306176,651,385)
{
@Color=11184895
Caption="1"
Color=12632256
link(Out,16695648:doData,[])
Primary=[15877871,-280,-63]
}
Add(GetDataEx,9685680,595,411)
{
link(Data,859352:##count,[])
}
Add(ArrayEnum,1,413,315)
{
link(onItem,3855596:doEvent1,[])
link(onEndEnum,15446539:doReset,[(458,328)(458,335)])
link(Array,8198231:Var,[])
}
Add(LineBreak,4449706,91,427)
{
Caption="5"
Color=8421376
link(Out,16543835:doOn,[(131,433)(131,426)])
Primary=[2198194,644,147]
}
Add(For,13304746,588,476)
{
@Hint=#31:Цикл запуска процесса в потоках|
IncludeEnd=1
link(onEvent,5379219:doEvent1,[])
link(onStop,11085601:doEvent1,[(630,489)(630,552)])
link(End,9685680:Var2,[])
}
Add(Hub,312411,546,469)
{
link(onEvent1,13262560:doClear,[(574,475)(574,515)(666,515)(666,496)])
link(onEvent2,13304746:doFor,[])
}
Add(StrList,11221319,602,126)
{
@Hint=#31:Список файлов для одного потока|19:Для каждого - новый|
}
Add(LineBreak,9606102,616,182)
{
Type=1
Color=65535
link(Data,11221319:Array,[])
Primary=[8198231,-203,105]
}
Add(Message,14191532,777,546)
{
Message="Таки да, все посчитано."
}
Add(LineBreak,5140787,504,469)
{
Caption="2"
Color=15780518
link(Out,312411:doEvent1,[])
Primary=[2607644,322,-98]
}
Add(Hub,5379219,637,476)
{
link(onEvent1,12511257:doWork3,[(663,482)(663,431)(582,431)])
link(onEvent2,13262560:doCalc,[])
}
Add(HubEx,12511257,578,378)
{
link(onEvent,859352:##select,[])
}
Add(Hub,11085601,637,546)
{
link(onEvent1,14191532:doMessage,[])
link(onEvent2,15681245:doTimer,[])
}
Add(LineBreak,3286171,546,392)
{
Caption="3"
Color=12639424
link(Out,859352:##clear,[])
Primary=[10499267,189,161]
}
Add(Switch,16543835,140,406)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
Point(onOn)
Point(onOff)
Point(doOn)
link(onSwitch,10544480:doEvent1,[])
}
Add(Hub,10544480,182,406)
{
OutCount=4
link(onEvent1,15167945:doEnabled,[(207,412)(207,118)])
link(onEvent2,6202415:doEnabled,[(226,419)(226,223)])
link(onEvent3,9416412:doEnabled,[(238,426)(238,314)])
}
Add(LineBreak,2807941,91,406)
{
Caption="4"
Color=65280
link(Out,16543835:doReset,[(131,412)(131,419)])
Primary=[7243684,280,-105]
}
Add(If_else,11639316,784,371)
{
link(onTrue,2607644:In,[])
link(Op2,15432256:Max,[(797,359)(776,359)(776,416)(748,416)])
}
Add(DoData,16695648,693,385)
{
link(onEventData,15432256:doMax,[])
link(Data,9685680:Var3,[(699,367)(648,367)(648,416)])
}
Add(CounterEx,15432256,735,371)
{
Min=1
Max=10000
Point(doReset)
Point(doMax)
Point(onThroughMax)
Point(Max)
link(onNext,11639316:doCompare,[])
}
Add(Hub,2451939,539,329)
{
InCount=2
link(onEvent1,859352:##add,[(574,335)(574,377)])
link(onEvent2,11850414:doClear,[(567,342)(567,328)])
}
Add(Hub,3444203,525,210)
{
link(onEvent1,11258217:doWork2,[])
link(onEvent2,12850526:doText,[(549,223)(549,230)])
}
Add(HubEx,11258217,574,210)
{
link(onEvent,6828647:doCalc,[])
}
Add(Hub,12912098,707,553)
{
link(onEvent1,10499267:In,[])
link(onEvent2,2198194:In,[(728,566)(728,580)])
}
Add(MMTimer,15681245,665,553)
{
Enable=1
AutoStop=2
link(onTimer,12912098:doEvent1,[])
}


карма: 1

0