Вверх ↑
Этот топик читают: Гость
Ответов: 223
Рейтинг: 24
#1: 2013-10-17 11:40:08 ЛС | профиль | цитата
Всем добрый день...
У меня есть 3 строки например:1;2;3;4;a
1;2;3;4;a
1;2;3;4;a
их надо преобразовать:1;1;1
2;2;2
3;3;3
4;4;4
a;a;a
моя схема ниже,но она большая,может есть вариант проще...
code_32049.txt
карма: 0

0
файлы: 1code_32049.txt [1.6KB] [111]
Разработчик
Ответов: 26170
Рейтинг: 2127
#2: 2013-10-17 12:44:07 ЛС | профиль | цитата
Вот еще, как вариант

Add(MainForm,13198001,98,175)
{
Width=473
Height=351
link(onCreate,7396795:doEvent1,[])
}
Add(StrList,4025601,336,133)
{
Strings=#9:1;2;3;4;a|9:1;2;3;4;a|9:1;2;3;4;a|
}
Add(For,7736160,273,203)
{
End=3
IncludeEnd=1
link(onEvent,5391179:doSet,[])
link(onStop,9623583:doTrim,[(312,216)(312,279)])
}
Add(Memo,15817866,588,273)
{
Left=80
Top=20
Width=185
Height=200
}
Add(StrCatDelim,15429116,532,203)
{
Delimiter=";"
Point(Delimiter)
Point(doClear)
link(Str1,12252438:Var1,[(538,194)(524,194)(524,247)])
link(Str2,4703391:Data,[(545,194)(573,194)(573,257)(412,257)])
}
Add(ChanelToIndex,4703391,406,203)
{
Count=5
Point(Data)
link(onIndex,16320156:doCompare,[])
}
Add(MultiSetParam,5391179,336,203)
{
Count=5
OutType=1
link(Parameters,4025601:Text,[])
link(onSet1,4703391:doWork1,[])
link(onSet2,4703391:doWork2,[])
link(onSet3,4703391:doWork3,[])
link(onSet4,4703391:doWork4,[])
link(onSet5,4703391:doWork5,[])
}
Add(For,5566944,189,196)
{
End=5
IncludeEnd=1
link(onEvent,14342440:doEvent1,[])
}
Add(Hub,7396795,147,189)
{
link(onEvent1,15817866:doClear,[(172,195)(172,314)(571,314)(571,286)])
link(onEvent2,5566944:doFor,[])
}
Add(GetDataEx,12252438,532,242)
{
link(Data,15429116:Result,[])
}
Add(If_else,16320156,462,203)
{
link(onTrue,15429116:doStrCatDlm,[])
link(Op1,5566944:Position,[(468,194)(454,194)(454,250)(195,250)])
}
Add(Hub,14342440,238,196)
{
link(onEvent1,15429116:doClear,[(263,202)(263,125)(501,125)(501,216)])
link(onEvent2,7736160:doFor,[])
}
Add(Trim,9623583,532,273)
{
Char=";"
link(onTrim,15817866:doAdd,[])
link(Text,12252438:Var2,[])
}

карма: 22

1
Голосовали:wasya
Ответов: 704
Рейтинг: 44
#3: 2013-10-17 13:19:50 ЛС | профиль | цитата
nesco писал(а):
Вот еще, как вариант

Nesco как всегда опередил , хотел тоже показать примерно такой же пример с MultiSetParam
карма: 0

0
Ответов: 223
Рейтинг: 24
#4: 2013-10-17 13:37:30 ЛС | профиль | цитата
nesco спасибо за вариант....

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2013-10-17 18:10:20 ЛС | профиль | цитата
wasya, вот твой вариант. Выбросил лишнее.
code_32050.txt
(самый экономичный, из приведённых выше, по размеру кода. По скорости ~ одинаковы - разница в пределах 0-5%)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1code_32050.txt [1.4KB] [123]
Голосовали:wasya
Ответов: 223
Рейтинг: 24
#6: 2013-10-19 10:17:15 ЛС | профиль | цитата
TadСпасибо....
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2013-10-19 12:21:34 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 20:48:10
карма: 0

0
Ответов: 9906
Рейтинг: 351
#8: 2013-10-19 12:33:18 ЛС | профиль | цитата
Tad писал(а):
самый экономичный

Да ладно
Add(MainForm,16124279,112,217)
{
link(onCreate,7736160:doFor,[])
}
Add(StrList,4025601,266,63)
{
Strings=#11:1;2;3;4;a;x|11:1;2;3;4;a;x|11:1;2;3;4;a;x|11:1;2;3;4;a;x|
}
Add(GetIndexData,7179580,336,168)
{
Count=5
link(Data1,10102946:Part1,[])
link(Data2,10102946:Part2,[])
link(Data3,10102946:Part3,[])
link(Data4,10102946:Part4,[])
link(Data5,10102946:Part5,[])
}
Add(For,7736160,175,231)
{
End=5
IncludeEnd=1
link(onEvent,8447688:doEvent1,[])
}
Add(Memo,15817866,385,287)
{
Left=80
Top=20
Width=185
Height=200
Font=[Lucida Console,10,1,0,204]
ScrollBars=3
}
Add(MultiStrPart,10102946,336,119)
{
Count=5
link(onSplit,15429116:doStrCatDlm,[(382,125)(382,209)(312,209)(312,230)])
}
Add(Hub,8447688,231,231)
{
OutCount=4
link(onEvent1,15429116:doClear,[])
link(onEvent2,7179580:doIndex,[(263,244)(263,174)])
link(onEvent3,11794191:doEnum,[(256,251)(256,125)])
link(onEvent4,10053337:doDelete,[(312,258)(312,293)])
}
Add(ArrayEnum,11794191,280,119)
{
link(onItem,10102946:doSplit,[])
link(Array,4025601:Array,[])
}
Add(StrCatDelim,15429116,329,224)
{
Delimiter=";"
Point(Delimiter)
Point(doClear)
link(Str1,103174:Var1,[(335,215)(321,215)(321,268)])
link(Str2,7179580:Var,[])
}
Add(GetDataEx,103174,329,263)
{
link(Data,15429116:Result,[])
}
Add(Delete,10053337,329,287)
{
Count=1
link(onDelete,15817866:doAdd,[])
link(Str,103174:Var2,[])
}
карма: 9

0
Ответов: 16884
Рейтинг: 1239
#9: 2013-10-19 13:02:58 ЛС | профиль | цитата
1.
Tad писал(а):
самый экономичный, из приведённых выше

2. У меня Avast был против такого решения
avastprotiv.gif

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1avastprotiv.gif [56.9KB] [143]
Ответов: 9906
Рейтинг: 351
#10: 2013-10-19 13:32:23 ЛС | профиль | цитата
А ты попробуй ему засунуть doEnum не с Hub-а, а с onIndex (есть еще варианты)
-- может и успокоится
карма: 9

0
Ответов: 223
Рейтинг: 24
#11: 2013-10-19 13:32:30 ЛС | профиль | цитата
Galkov , 46.165.4.34 спасибо за помощь вы мне помогли....
карма: 0

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)