Ссылка на файл|картинка 1|картинка 2|картинка 3|картинка 4|картинка 5|картинка 6|Имя сообщения|1280|720|259|mp4|00:09:55|имя файла|разделитель сообщений (то же самое есть в базе SQlite)
Мне нужно получить следующее: (Вывод готового сообщения должен настраиваться в шаблонах)
Имя сообщения
имя файла
картинка 1 картинка 2
картинка 3 картинка 4
картинка 5 картинка 6
1280x720 259 mp4 00:09:55
Ссылка на файл
Разделитель сообщений
Это все я реализовал через разбиение строк и формат строк через маску, но есть одно НО, с небольшим количеством сообщений для обработки все происходит быстро, но если в списке 400-500 строк для разбиения, то процесс затягивается минут на 5. Может это можно как то реализовать по другому? Что бы процесс формирования был быстрее?
Часть кода формирования шаблона:
Add(ChildPanel,6811566,1085,357)
{
}
BEGIN_SDK
Add(EditMulti,15881204,238,21)
{
WorkCount=3
Width=762
Height=368
link(doWork1,63868:In,[])
link(doWork2,13363788:In,[])
link(doWork3,9735313:doExecute,[(248,41)(248,48)])
}
Add(Panel,6891368,301,224)
{
Left=15
Top=10
Width=708
Height=598
}
Add(Memo,11623648,767,189)
{
Left=2
Top=2
Width=704
Height=599
Align=5
ScrollBars=2
Point(doSave)
}
Add(Replace,3711631,651,189)
{
SubStr="‹%str%›"
DestStr="\r"
link(onReplace,11623648:doAdd,[])
}
Add(Replace,10016076,602,189)
{
SubStr="\n\r"
link(onReplace,3711631:doReplace,[])
}
Add(LineBreak,3259271,685,242)
{
Caption="doSave"
link(Out,11623648:doSave,[(748,230)])
Primary=[16675810,-377,-200]
}
Add(LineBreak,2561671,497,185)
{
Caption="add"
link(Out,16491560:doReplace,[(534,191)(534,195)])
Primary=[63868,-189,-164]
}
Add(SDialog,9735313,259,42)
{
Filter="TXT|*.txt"
FileName="post.txt"
NoChangeDir=1
link(onExecute,16675810:In,[])
}
Add(LineBreak,604573,721,196)
{
link(Out,11623648:doClear,[])
Primary=[13363788,-469,-168]
}
Add(Replace,16491560,553,189)
{
SubStr=" \r"
link(onReplace,10016076:doReplace,[])
}
END_SDK
Add(Label,721094,1043,490)
{
Left=762
Top=17
Width=242
Height=20
Color=8421504
Font=[MS Sans Serif,11,1,0,1]
Caption="Всего сообщений в списке: 0 шт."
link(Text,13105822:FString,[])
}
Add(FormatStr,16563636,868,357)
{
DataCount=15
Mask=""
Point(doMask)
Point(FString)
link(onFString,6811566:doWork1,[])
link(Str1,640451:Part1,[])
link(Str2,640451:Part2,[])
link(Str3,640451:Part3,[])
link(Str4,640451:Part4,[])
link(Str5,640451:Part5,[])
link(Str6,640451:Part6,[])
link(Str7,640451:Part7,[])
link(Str8,640451:Part8,[])
link(Str9,640451:Part9,[])
link(Str10,640451:Part10,[])
link(Str11,640451:Part11,[])
link(Str12,640451:Part12,[])
link(Str13,640451:Part13,[])
link(Str14,640451:Part14,[])
link(Str15,2072367:Var,[])
}
Add(MultiStrPart,640451,868,294)
{
Char="|"
Count=14
link(onSplit,5210914:doData,[(981,300)(981,335)(737,335)(737,370)])
}
Add(GlobalVar,16772759,749,343)
{
Name="shablon"
}
Add(Switch,8280403,525,196)
{
Point(onOn)
Point(onOff)
link(onSwitch,11760297:doEvent1,[])
link(onOff,6661889:doEvent1,[(593,300)])
}
Add(GlobalVar,2072367,966,336)
{
Name="separator"
}
Add(ArrayEnum,1474708,784,259)
{
link(onItem,14699960:doEvent1,[])
link(onEndEnum,16195626:doWork3,[(828,272)(828,232)(760,232)])
link(Array,13678988:Strings,[(790,233)(797,233)])
}
Add(LineBreak,197999,1029,364)
{
Caption="off"
link(Out,6811566:doWork2,[])
Primary=[2192435,-357,-77]
}
Add(LineBreak,7544444,777,231)
{
Type=1
link(Data,16114352:Var2,[])
Primary=[2468660,266,189]
}
Add(FormatStr,13105822,1043,448)
{
DataCount=1
Mask="Всего сообщений в списке: %1 шт."
Point(FString)
link(onFString,721094:doText,[(1083,454)(1083,485)(1031,485)(1031,496)])
link(Str1,2468660:Var,[])
}
Add(Hub,6661889,630,294)
{
OutCount=4
link(onEvent1,2192435:In,[(658,300)])
link(onEvent2,6996054:In,[(651,307)])
link(onEvent3,7986101:In,[(658,314)])
link(onEvent4,12770242:In,[(651,321)])
}
Add(HubEx,16064689,1029,448)
{
link(onEvent,13105822:doString,[])
}
Add(LineBreak,8454531,980,441)
{
Caption="clear"
link(Out,16064689:doWork1,[(1033,447)])
Primary=[6996054,-308,-133]
}
Add(Hub,11760297,574,196)
{
OutCount=4
link(onEvent1,13678988:doLoad,[])
link(onEvent2,7605371:In,[])
link(onEvent3,2544970:doStart,[(702,265)])
link(onEvent4,15893290:In,[])
}
Add(ProgressBarRush,8695912,1106,175)
{
Left=735
Top=70
Width=350
ColorTo=65280
Transparent=0
Caption=""
Point(doMax)
}
Add(Counter,13173064,1057,175)
{
Max=10000
link(onNext,7926712:doWork2,[])
}
Add(Hub,14699960,833,259)
{
OutCount=3
link(onEvent1,13176475:In,[])
link(onEvent2,640451:doSplit,[(854,272)])
link(onEvent3,640451:doClear,[(857,307)])
}
Add(LineBreak,11697528,1001,189)
{
link(Out,10387550:doEvent1,[])
Primary=[12770242,-329,154]
}
Add(LineBreak,8616292,1008,168)
{
link(Out,13173064:doNext,[(1048,181)])
Primary=[13176475,-133,91]
}
Add(DoData,7431509,966,182)
{
Data=Integer(1)
link(onEventData,8695912:doMax,[])
link(Data,955517:Var,[])
}
Add(GetDataEx,16114352,777,217)
{
link(Data,13678988:Count,[])
}
Add(Hub,10387550,1036,189)
{
link(onEvent1,13173064:doReset,[])
link(onEvent2,7926712:doWork3,[(1096,202)])
}
Add(HubEx,7926712,1092,175)
{
link(onEvent,8695912:doPosition,[])
}
Add(LineBreak,4900279,812,231)
{
Type=1
link(Data,16114352:Var3,[(818,222)])
Primary=[955517,154,-70]
}
Add(LineBreak,2619097,924,182)
{
link(Out,7431509:doData,[])
Primary=[7605371,-294,21]
}
Add(LineBreak,359958,721,182)
{
link(Out,16195626:doWork2,[])
Primary=[7986101,-49,147]
}
Add(LineBreak,12798506,973,462)
{
Caption="format"
link(Out,16064689:doWork2,[(1027,454)])
Primary=[15893290,-343,-245]
}
Add(StringTableMT,13678988,777,175)
{
Left=725
Top=95
Width=355
Height=425
Visible=1
StrDelimiter="|"
IconsCheck=[]
MiscIcons=[]
Icons=[]
FileName="setings\\UploadTXT\\postlistbefor.txt"
Point(doLoad)
Point(Strings)
}
Add(DoData,5210914,756,364)
{
link(onEventData,5846425:doEvent1,[])
link(Data,16772759:Var,[(762,360)(755,360)])
}
Add(Hub,5846425,819,364)
{
link(onEvent1,16563636:doMask,[])
link(onEvent2,16563636:doString,[(843,377)(843,363)])
}
Add(Thread,2544970,735,259)
{
link(onExec,1474708:doEnum,[])
}
Add(HubEx,16195626,756,182)
{
link(onEvent,13678988:doClear,[])
}
Add(Button,3972611,455,196)
{
Left=315
Top=710
Width=130
Height=50
Font=[MS Sans Serif,10,1,255,1]
TabOrder=1
Caption="Nachat"
Flat=0
link(onClick,8280403:doSwitch,[])
}
Add(Button,2672261,1018,378)
{
Left=450
Top=710
Width=130
Height=50
Font=[MS Sans Serif,10,1,255,1]
TabOrder=1
Caption="Sohranit"
Flat=0
link(onClick,6811566:doWork3,[(1068,384)(1068,377)])
}