Вверх ↑
Ответов: 8921
Рейтинг: 823
#1: 2006-08-26 00:41:08 ЛС | профиль | цитата
Старый чайник, пример разложения длинной строки по словам и подгонки получившихся строк до заданного количества символов (следует отметить, что равное количество символов не всегда гарантирует равную длину строк из-за разного размера символов)
Add(MainForm,7351502,126,126)
{
Left=20
Top=105
Width=380
Height=413
}
Add(Edit,12236781,77,231)
{
Left=10
Top=45
Width=350
Text=" рпоан ьбить ждлолждэ щшцйгук длоывар эждыва жэдлыва жылв бьтмси длыова юбьячс южяьч джлжд юьтл. бььсчм "
link(onEnter,11663326:doEvent1,[])
}
Add(Label,1957376,196,126)
{
Left=20
Top=5
Width=330
Height=32
Caption="Исходная строка из любого кол-ва слов, длина каждого из которых меньше длины разбиения."
AutoSize=1
Alignment=2
}
Add(MultiElement,15133593,238,245)
{
@Hint=#64:Разложение строки на максимальной длины подстроки из целых слов.|35:Последняя строка выдаётся отдельно.|
link(onEvent1,10499567:doWork1,[(289,251)(289,237)])
link(Data1,3312719:Data1,[])
link(onEvent2,11201595:doEvent1,[(289,258)(289,279)])
}
BEGIN_SDK
Add(EditMulti,5115137,3,3)
{
EventCount=2
WorkCount=2
DataCount=1
Width=664
Height=347
link(doWork1,2891911:doEvent1,[(28,9)(28,55)])
link(doWork2,13027485:doStart,[(18,16)(18,205)])
}
Add(Hub,9019472,391,101)
{
link(onEvent1,5115137:onEvent2,[(548,107)(548,16)])
link(onEvent2,13027485:doStop,[(433,114)(433,141)(87,141)(87,212)])
}
Add(Math,13253998,482,220)
{
OpType=1
Op2=1
ResultType=0
}
Add(Memory,568443,279,220)
{
link(onData,13768878:doCompare,[])
}
Add(Memory,8425550,160,101)
{
link(onData,1042978:doLength,[])
}
Add(DoData,9055542,384,220)
{
link(onEventData,13810254:doValue,[])
link(Data,568443:Value,[(390,210)(374,210)(374,262)(285,262)])
}
Add(Hub,5960803,97,101)
{
InCount=2
OutCount=1
link(onEvent1,8425550:doValue,[])
}
Add(Position,15054030,160,206)
{
Target=" "
Point(doReset)
link(onSearch,9364604:doEvent1,[])
link(Str,7571114:Data1,[])
}
Add(Hub,9364604,223,206)
{
link(onEvent1,9055542:doData,[(369,212)(369,226)])
link(onEvent2,568443:doValue,[(263,219)(263,226)])
}
Add(If_else,13768878,321,220)
{
Type=2
link(onTrue,2627879:doCopy,[(361,226)(361,289)])
link(Op2,3461947:Data2,[])
}
Add(GetData,7571114,160,143)
{
Count=4
link(Data,8425550:Value,[])
}
Add(Copy,2627879,468,283)
{
Position=1
link(onCopy,2533875:doEvent2,[])
link(Str,7571114:Data2,[(474,200)(173,200)])
link(Count,13253998:Result,[])
}
Add(Hub,2533875,545,276)
{
InCount=2
OutCount=3
link(onEvent1,5115137:onEvent1,[(581,282)(581,9)])
link(onEvent2,5201185:doDelete,[])
link(onEvent3,14353637:doEvent2,[(587,296)(587,322)(82,322)(82,272)])
}
Add(Memory,13810254,433,220)
{
link(onData,13253998:doOperation,[])
}
Add(Delete,5201185,594,283)
{
link(onDelete,5960803:doEvent2,[(639,289)(639,333)(46,333)(46,114)])
link(Str,7571114:Data3,[(600,195)(180,195)])
link(Count,13810254:Value,[(614,268)(439,268)])
}
Add(Length,1042978,202,101)
{
link(onLength,7804315:doCompare,[])
}
Add(If_else,7804315,244,101)
{
Type=3
link(onTrue,6163635:doEvent1,[])
link(Op2,3461947:Data1,[(257,86)(327,86)])
}
Add(GetData,3461947,321,38)
{
link(Data,5115137:Data1,[(327,21)(9,21)])
}
Add(Hub,6163635,286,101)
{
link(onEvent1,13768365:doData,[])
}
Add(DoData,13768365,342,101)
{
link(onEventData,9019472:doEvent1,[])
link(Data,7571114:Data4,[(348,91)(326,91)(326,188)(187,188)])
}
Add(Thread,13027485,98,199)
{
Delay=0
link(onSyncExec,15054030:doSearch,[])
}
Add(Hub,2891911,35,49)
{
link(onEvent1,14353637:doEvent1,[(82,55)(82,265)])
link(onEvent2,5960803:doEvent1,[(89,62)(89,107)])
}
Add(Hub,14353637,98,259)
{
InCount=2
OutCount=1
link(onEvent1,15054030:doReset,[(141,265)(141,219)])
}
END_SDK
Add(Label,4528562,441,196)
{
Left=65
Top=85
Width=210
Caption="Строки длинной по символов"
AutoSize=1
}
Add(Button,7839209,77,147)
{
Left=305
Top=360
Caption="Выход"
link(onClick,7351502:doClose,[])
}
Add(Edit,1406977,238,126)
{
Left=170
Top=80
Width=30
Text="40"
}
Add(MultiElement,4850142,175,245)
{
@Hint=#74:Удаление лишних пробелов и добавление пробелов в начало и окончание строки|
link(onEvent1,15133593:doWork1,[])
link(onEvent2,15133593:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,13317760,3,3)
{
EventCount=2
WorkCount=1
Width=440
Height=172
link(doWork1,11663326:doEvent1,[(19,9)(19,76)])
}
Add(Hub,11663326,35,70)
{
OutCount=4
link(onEvent1,5423319:doClear,[(243,76)(243,48)])
link(onEvent2,1871332:doString,[(89,83)(89,41)])
link(onEvent3,3988429:doTrim,[(81,90)(81,132)])
link(onEvent4,7817383:doData,[])
}
Add(BlockFind,15065003,161,35)
{
IncludeBlock=1
Delete=0
ReplaceStr=" "
StartBlock=" "
EndBlock=" "
link(onSearch,13101238:doCompare,[])
}
Add(If_else,13101238,217,35)
{
Type=5
Op2=String()
link(onTrue,4512877:doString,[])
}
Add(Memory,5423319,322,35)
{
Default=String()
}
Add(FormatStr,4512877,266,35)
{
link(onFString,5423319:doValue,[])
link(Str1,2873314:Data1,[(272,25)(310,25)(310,119)(328,119)])
}
Add(DoData,7817383,161,91)
{
link(onEventData,13317760:onEvent2,[(213,97)(213,16)])
}
Add(GetData,2873314,322,77)
{
link(Data,5423319:Value,[])
}
Add(Trim,3988429,329,126)
{
link(onTrim,6475466:doStrCat,[])
link(Text,2873314:Data2,[])
}
Add(StrCat,6475466,378,126)
{
Str2=" "
link(onStrCat,13317760:onEvent1,[(433,132)(433,9)])
}
Add(FormatStr,1871332,112,35)
{
DataCount=1
Mask=" %1 "
link(onFString,15065003:doSearch,[])
}
END_SDK
Add(Hub,11663326,119,238)
{
link(onEvent1,6840095:doOn,[(165,244)(165,321)])
link(onEvent2,4850142:doWork1,[])
}
Add(ListBox,3574320,441,245)
{
Left=10
Top=105
Width=350
Height=240
}
Add(Hub,1202021,385,245)
{
InCount=2
OutCount=1
link(onEvent1,3574320:doAdd,[])
}
Add(GetData,3312719,238,175)
{
link(Data,1406977:Text,[])
}
Add(Hub,11201595,308,273)
{
link(onEvent1,1202021:doEvent2,[(362,279)(362,258)])
link(onEvent2,6840095:doOff,[(354,286)(354,350)(165,350)(165,328)])
}
Add(LED,6840095,175,308)
{
Left=20
Top=355
ColorOff=65280
}
Add(Label,3242339,224,308)
{
Left=60
Top=360
Width=175
Caption="Зелёный - программа свободна"
AutoSize=1
}
Add(MultiElement,10499567,308,231)
{
@Hint=#63:Увеличение количества симолов до заданного добавлением пробелов|
link(onEvent1,1202021:doEvent1,[(362,237)(362,251)])
link(Data1,3312719:Data2,[(314,219)(251,219)])
}
BEGIN_SDK
Add(EditMulti,6158756,3,3)
{
EventCount=1
WorkCount=1
DataCount=1
Width=461
Height=221
link(doWork1,15650478:doEvent1,[(12,9)(12,41)])
}
Add(Memory,6466319,126,49)
{
link(onData,2895975:doLength,[])
}
Add(Hub,6188143,84,49)
{
InCount=2
OutCount=1
link(onEvent1,6466319:doValue,[])
}
Add(Length,2895975,182,49)
{
link(onLength,12469663:doCompare,[])
}
Add(If_else,12469663,231,49)
{
Type=1
link(onTrue,16216988:doEvent1,[])
link(onFalse,12082839:doData,[(280,62)(280,174)])
link(Op2,6158756:Data1,[(244,26)(9,26)])
}
Add(Position,3311275,126,168)
{
Target=" "
Point(doReset)
link(Str,9268637:Data1,[])
}
Add(Hub,15650478,21,35)
{
OutCount=3
link(onEvent1,2566127:doClear,[(286,41)(286,97)])
link(onEvent2,3311275:doReset,[(64,48)(64,181)])
link(onEvent3,6188143:doEvent1,[(68,55)(68,55)])
}
Add(Trim,8335378,231,168)
{
link(onTrim,6188143:doEvent2,[(273,174)(273,130)(75,130)(75,62)])
}
Add(Insert,10606367,182,168)
{
SubStr=" "
link(onInsert,8335378:doTrim,[])
link(Str,9268637:Data2,[(188,153)(139,153)])
link(Position,3311275:Position,[(202,158)(167,158)(167,209)(132,209)])
}
Add(GetData,9268637,126,91)
{
Count=3
link(Data,6466319:Value,[])
}
Add(DoData,12082839,350,168)
{
link(onEventData,6158756:onEvent1,[(445,174)(445,9)])
link(Data,9268637:Data3,[(356,145)(146,145)])
}
Add(Hub,9825776,399,49)
{
InCount=2
OutCount=1
link(onEvent1,3311275:doSearch,[(438,55)(438,137)(114,137)(114,174)])
}
Add(Memory,2566127,350,84)
{
Default=Integer(0)
link(onData,9825776:doEvent2,[(390,90)(390,62)])
}
Add(If_else,7244987,350,42)
{
Type=5
Op2=Integer(0)
link(onTrue,9825776:doEvent1,[(390,48)(390,55)])
link(Op1,2566127:Value,[(356,34)(338,34)(338,123)(356,123)])
}
Add(Hub,16216988,294,49)
{
OutCount=3
link(onEvent1,7244987:doCompare,[(345,55)(345,48)])
link(onEvent2,2566127:doValue,[(345,62)(345,90)])
link(onEvent3,10606367:doInsert,[(333,69)(333,118)(172,118)(172,174)])
}
END_SDK


[size=-2]------ Добавлено в 00:41
Во как! Dilma обещал большие схемы сворачивать в ссылки?
карма: 19

0