Вверх ↑
Этот топик читают: Гость
Ответов: 1043
Рейтинг: 33
#1: 2011-10-08 12:53:38 ЛС | профиль | цитата
не пойму почему по нажатию кнопки действие повторяется еще 1 раз. то есть число добавляется в строку повторно.
должно быть

1
2
3

а в итоге
1
2
2
3
3

вот code_25410.txt
карма: 0

-1
файлы: 1code_25410.txt [4.3KB] [139]
Голосовали:sla8a
Ответов: 3889
Рейтинг: 362
#2: 2011-10-08 13:02:23 ЛС | профиль | цитата
Малоинформативное название темы, функционал схемы не объяснён, а при таком оформлении схемы проще и быстрее написать с нуля по техзаданию, чем разбираться.
карма: 1

0
Ответов: 1536
Рейтинг: 176
#3: 2011-10-08 13:02:50 ЛС | профиль | цитата
ashkalov, проверяй работу схемы компонентом Debug раздел "помощники". Так же Debug можно вставить через подменю (ПКМ) на линии соединения компонентов. Схема, как клубок ниток, не разберёшь.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#4: 2011-10-08 14:56:03 ЛС | профиль | цитата
ser_davkin писал(а):
ashkalov, проверяй работу схемы компонентом Debug
и, заодно, расскажи, что эта отвратительная схема должна делать
------------ Дoбавленo в 14.56:
Add(MainForm,16736705,105,175)
{
Width=551
Height=492
link(onCreate,6992417:doReplace,[])
}
Add(Memory,7232281,154,126)
{
@Hint=#4:Хекс|
Default=String(100000000000000000000000000200000000000000000000000000300000000000000000000000000)
}
Add(Memory,16578619,196,126)
{
@Hint=#13:сжимаймый бит|
Default=String(00000000000000000000000000)
}
Add(ListBox,6731182,273,175)
{
Left=10
Top=10
Width=510
Height=410
}
Add(Button,8100310,105,224)
{
Left=245
Top=425
link(onClick,7891586:doNext,[])
}
Add(Replace,6992417,154,189)
{
DestStr="
"
link(onReplace,13572691:doText,[])
link(Str,7232281:Value,[])
link(Sub_str,16578619:Value,[(167,173)(202,173)])
}
Add(StrList,13572691,210,168)
{
Point(doGetString)
Point(onGetString)
link(onGetString,6731182:doAdd,[])
}
Add(CounterEx,7891586,154,224)
{
Max=2
Default=-1
link(onNext,13572691:doGetString,[(197,230)(197,202)])
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1043
Рейтинг: 33
#5: 2011-10-09 01:05:17 ЛС | профиль | цитата
Tad, написали вы свой пример не к чему! постольку поскольку задача положена не перед определенным тестом заданным изначально.
я бы так и сделал, если бы мне просто циферки нужно было в рядочек выстроить.
Вопрос звучал ни как упростить, переписать схему и т.д., а почему событие повторяется дважды. Не спорю в схеме каша, я и не рассчитывал на точную помощь, я надеялся что найдется человек который может быть увидит того , чего я не увидел и поможет.

Цель схемы очень проста, файл конвертируется в hex и происходит поиск одинаковых подряд чисел их подсчет и так далее.
Потом эти числа меняются на запись в которой хранится знак и его количество например 00 00 00 00 00 00 00 00 00 меняется на [09].
тем самым сокращает текст.а 1 2 3 я написал для наглядности. там может быть и так... d01208ff000000000000000a220xdf000000000000(d01208ff-вместо 1,a220xdf в место-2 и т.д.)

надеюсь изложил понятно...
карма: 0

0
Ответов: 1536
Рейтинг: 176
#6: 2011-10-09 10:33:42 ЛС | профиль | цитата
ashkalov, ещё раз и повнимательней Debug и Помощники. У тебя одно и то же значение ходит дважды по кругу. Хаос, который творится в твоей схеме, тебя же сбивает с толку, поэтому и возникают подобные вопросы.

Привёл в порядок для наглядности и удобства поиска ошибки. Только запускать нужно на кнопке "Режим отладки"
Add(MainForm,4662331,84,182)
{
Width=551
Height=492
link(onCreate,12233518:doWork2,[])
}
Add(Memory,7232281,245,56)
{
@Hint=#4:Хекс|
Default=String([]100000000000000000000000000200000000000000000000000000300000000000000000000000000)
}
Add(Memory,16578619,252,98)
{
@Hint=#13:сжимаймый бит|
Default=String(00000000000000000000000000)
}
Add(Delete,15313324,315,196)
{
link(onDelete,8422553:doInsert,[])
link(Str,11283057:Var2,[])
link(Position,13804012:Var2,[])
link(Count,12547461:Result,[(335,186)(353,186)(353,275)(202,275)])
}
Add(Position,13232844,245,196)
{
Point(doReset)
link(onSearch,15313324:doDelete,[])
link(Str,7470745:Var2,[])
link(Target,1864292:Var2,[])
}
Add(Length,12547461,196,196)
{
link(onLength,13232844:doSearch,[])
link(Str,1864292:Var1,[(202,152)])
}
Add(GetDataEx,1864292,252,147)
{
link(Data,16578619:Value,[])
}
Add(Insert,8422553,371,196)
{
link(onInsert,541467:doSearch,[])
link(SubStr,15603647:Value,[])
link(Position,13804012:Var3,[(391,180)])
}
Add(Memory,15603647,378,126)
{
@Hint=#13:сжимаймый бит|
Default=String([bit-9])
}
Add(BlockFind,541467,427,196)
{
IncludeBlock=1
StartBlock="[]"
EndBlock="[bit-9]"
link(onSearch,3149010:doEvent1,[])
}
Add(Position,3086972,539,210)
{
Point(doReset)
PColor(Str,5614080)
link(onSearch,15909980:doDelete,[])
link(Str,11379690:Var2,[])
link(Target,15499133:Result,[])
}
Add(Length,13655772,616,133)
{
}
Add(Delete,15909980,602,210)
{
link(onDelete,7232281:doValue,[(665,216)(665,46)(233,46)(233,62)])
link(Str,11379690:Var3,[(608,187)])
link(Position,3086972:Position,[(615,198)(643,198)(643,255)(545,255)])
link(Count,13655772:Result,[])
}
Add(StrCat,15499133,546,133)
{
Str2="00000000000000000000000000"
link(onStrCat,13655772:doLength,[])
}
Add(HubEx,12233518,140,196)
{
link(onEvent,812677:doEvent,[])
}
Add(ListBox,6731182,546,63)
{
Left=10
Top=10
Width=510
Height=410
}
Add(Button,8100310,84,217)
{
Left=245
Top=425
link(onClick,12233518:doWork3,[(144,223)])
}
Add(Hub,3149010,483,196)
{
OutCount=4
link(onEvent1,6731182:doAdd,[(510,202)(510,69)])
link(onEvent2,15499133:doStrCat,[(521,209)(521,139)])
link(onEvent3,3086972:doSearch,[])
link(onEvent4,13232844:doReset,[(509,223)(509,246)(233,246)(233,209)])
}
Add(GetDataEx,13804012,322,175)
{
Angle=3
link(Data,13232844:Position,[(285,180)(285,240)(251,240)])
}
Add(GetDataEx,7470745,245,161)
{
PColor(Data,5614080)
link(Data,7232281:Value,[])
}
Add(GetDataEx,11283057,315,161)
{
Angle=3
PColor(Data,5614080)
link(Data,7470745:Var3,[])
}
Add(GetDataEx,11379690,539,182)
{
PColor(Data,5614080)
link(Data,11283057:Var3,[(545,166)])
}
Add(Debug,812677,161,196)
{
link(onEvent,12547461:doLength,[])
}

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#7: 2011-10-09 14:38:03 ЛС | профиль | цитата
ashkalov писал(а):
почему событие повторяется дважды
нужен doReset во втором Pos
code_25418.txt
ser_davkin, Привёл в порядок для наглядности и удобства
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_25418.txt [2.3KB] [153]
Ответов: 1536
Рейтинг: 176
#8: 2011-10-09 18:44:45 ЛС | профиль | цитата
Tad, ну, хоть, пожевать оставил бы ему!
карма: 1
Не так страшна ошибка, как опасность её не заметить.

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