Вверх ↑
Этот топик читают: Гость
Ответов: 446
Рейтинг: 7
#1: 2007-10-15 23:37:56 ЛС | профиль | цитата
Грубо говоря, делаю так:
code_7374.txt
Выдает последнее значение цикла, а нужно получить все.
Если убрать переменную и поставить елемент Echo он соответственно напечатает 10 ссылок,
Вот мне нужно этот код использовать в другой части схемы, например внизу.
P.S. Это скроллер...
------------ Дoбавленo:

Вопрос снимается.
ВОт так работает:
Add(EntryPoint,13916558,21,105)
{
link(onStart,5223419:doEvent,[])
}
Add(GlobalVar,9558557,278,112)
{
Name="scroller"
}
Add(MultiElementEx,13855067,140,105)
{
link(onPrint,9558557:doValue,[(193,111)(193,118)])
}
BEGIN_SDK
Add(EditMultiEx,7028816,21,21)
{
WorkCount=#5:doFor|
EventCount=#7:onPrint|
Width=356
link(doFor,15569493:doFor,[(55,27)(55,90)])
}
Add(For,15569493,89,84)
{
End=10
link(onEvent,10751541:doPrint,[])
}
Add(HTML_Collector,10751541,173,84)
{
link(onPrint,16312635:doEcho,[])
link(number,15569493:Position,[(179,72)(137,72)(137,128)(95,128)])
}
BEGIN_SDK
Add(HCEditor,3206436,21,21)
{
VarCount=#28:Body=Содержит тело документа|47:Head=Содержит заголовок документа(если он есть)|
DataCount=#6:number|
Width=433
Height=284
link(doPrint,3765395:doBuild,[(115,27)(115,62)])
}
Add(HTM_A,16633762,273,203)
{
link(onPrint,12246463:doEcho,[])
link(Id,13261115:Var2,[(279,119)(48,119)])
}
Add(Echo,12246463,385,203)
{
link(Message,3290621:Var2,[(391,122)(160,122)])
}
Add(StringBuilder,3765395,210,56)
{
Mask="?number=%number% "
Args=#17:Mask=Маска строки|6:number|
link(onBuild,16633762:doPrint,[(269,62)(269,161)(191,161)(191,209)])
link(number,3290621:Var3,[(223,37)])
}
Add(GetDataEx,13261115,35,35)
{
Angle=3
link(Data,3206436:number,[(27,44)])
}
Add(GetDataEx,3290621,147,28)
{
Angle=3
link(Data,13261115:Var3,[(104,37)(104,44)])
}
END_SDK
Add(Echo,16312635,252,84)
{
}
END_SDK
Add(Echo,6178757,210,196)
{
link(Message,2192287:Var,[(216,182)(214,182)])
}
Add(Hub,5223419,70,105)
{
link(onEvent1,13855067:doFor,[])
link(onEvent2,6178757:doEcho,[(156,118)(156,202)])
}
Add(GlobalVar,2192287,208,154)
{
Name="scroller"
}
Вопрос к Dilma, это всегда так в пакете web? Сперва сутки тупишь, потом задаешь вопрос на форум и сам находишь на него ответ.
------------ Дoбавленo:

Нет, добовляем второе Echo и снова не работает.
Add(EntryPoint,6518122,56,287)
{
link(onStart,12431435:doEvent,[])
}
Add(GlobalVar,11861750,243,434)
{
Name="scroller"
}
Add(Echo,15143165,245,476)
{
link(Message,11861750:Var,[(251,462)(249,462)])
}
Add(Echo,2220885,406,378)
{
}
Add(HTML_Collector,10440342,329,378)
{
link(onPrint,2220885:doEcho,[])
}
BEGIN_SDK
Add(HCEditor,9919033,21,21)
{
VarCount=#28:Body=Содержит тело документа|47:Head=Содержит заголовок документа(если он есть)|
link(doPrint,14452843:doPrint,[(63,27)(63,55)])
}
Add(HTM_Br,14452843,105,49)
{
}
END_SDK
Add(GlobalVar,6576882,243,336)
{
Name="scroller"
}
Add(Hub,12431435,105,287)
{
OutCount=3
link(onEvent1,2041538:doFor,[])
link(onEvent2,5862036:doEcho,[(191,300)(191,384)])
link(onEvent3,15143165:doEcho,[(191,307)(191,482)])
}
Add(Echo,5862036,245,378)
{
link(onEcho,10440342:doPrint,[])
link(Message,6576882:Var,[(251,364)(249,364)])
}
Add(GlobalVar,4466832,313,294)
{
Name="scroller"
}
Add(MultiElementEx,2041538,175,287)
{
link(onPrint,4466832:doValue,[(228,293)(228,300)])
}
BEGIN_SDK
Add(EditMultiEx,7028816,21,21)
{
WorkCount=#5:doFor|
EventCount=#7:onPrint|
Width=356
link(doFor,15569493:doFor,[(55,27)(55,90)])
}
Add(For,15569493,89,84)
{
End=10
link(onEvent,15866760:doPrint,[])
}
Add(HTML_Collector,15866760,173,84)
{
link(onPrint,16312635:doEcho,[])
link(number,15569493:Position,[(179,72)(137,72)(137,128)(95,128)])
}
BEGIN_SDK
Add(HCEditor,3206436,21,21)
{
VarCount=#28:Body=Содержит тело документа|47:Head=Содержит заголовок документа(если он есть)|
DataCount=#6:number|
Width=433
Height=284
link(doPrint,3765395:doBuild,[(115,27)(115,62)])
}
Add(HTM_A,16633762,273,203)
{
link(onPrint,12246463:doEcho,[])
link(Id,13261115:Var2,[(279,119)(48,119)])
}
Add(Echo,12246463,385,203)
{
link(Message,3290621:Var2,[(391,122)(160,122)])
}
Add(StringBuilder,3765395,210,56)
{
Mask="?number=%number% "
Args=#17:Mask=Маска строки|6:number|
link(onBuild,16633762:doPrint,[(269,62)(269,161)(191,161)(191,209)])
link(number,3290621:Var3,[(223,37)])
}
Add(GetDataEx,13261115,35,35)
{
Angle=3
link(Data,3206436:number,[(27,44)])
}
Add(GetDataEx,3290621,147,28)
{
Angle=3
link(Data,13261115:Var3,[(104,37)(104,44)])
}
END_SDK
Add(Echo,16312635,252,84)
{
}
END_SDK
------------ Дoбавленo:

вот код php который генерируется чуть измененной схемой:
<?php
  function multi_call2() {
for($i3 = 0; $i3 < 10; $i3++) {
echo "<a id="".$i3."" href="?number=".$i3." ">".$i3."</a>";
}
return("");
}

$scroller = multi_call2();
echo $scroller;
echo "<br>";
echo $scroller;

// made by "HiAsm 3.65 build 166"
?>
Насколько я могу судить все правильно, почему тогда не выводится второй скроллер???
------------ Дoбавленo:

Кстати, может быть прикрутить какую нибудь штуку к пакету web, типа предварительной генерации кода, что бы можно было бы смотреть код php прямо в hiasme? А то в любом случае приходится держать открытый какой-нибудь редактор. и приходится прыгать между схемой и сгенерированным кодом.
карма: 0
Время верстки: Текущее время: %time%
0
файлы: 1code_7374.txt [1.2KB] [457]
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2007-10-16 00:31:24 ЛС | профиль | цитата
второй пример шикарный конечно... Генерируется совершенно не то, что хотел автор, но результат работы получается нужный

По порядку. Предлагаю вернуться к первой схеме - начало было положенно почти верно. Проблема собственно возникла из-за неверного понимания работы элемента коллектора. Откуда такое понимание взялось - хотелось бы знать, поскольку ни один элемент, кроме тех, где есть точка doAdd, таким образом не работает. Каждая итерация цикла затирает предыдущее значение в глобальной переменной, что следует из описания:
doValue: Устанавливает значение переменной

поэтому накопление текста надо делать так:
code_7375.txt


------------ Дoбавленo:


Ну, а если вот так:

#sha
Add(EntryPoint,15457318,42,98)
{
link(onStart,15569493:doFor,[])
}
Add(GetDataEx,9861824,189,133)
{
link(Data,14690381:Result,[])
}
Add(For,15569493,91,98)
{
End=10
link(onEvent,9433488:doPrint,[])
link(onStop,15311216:doEcho,[(131,111)(131,167)])
}
Add(HTML_Collector,9433488,140,98)
{
link(onPrint,14690381:doStrCat,[])
link(number,15569493:Position,[(146,86)(136,86)(136,144)(97,144)])
}
BEGIN_SDK
Add(HCEditor,3206436,21,21)
{
VarCount=#28:Body=Содержит тело документа|47:Head=Содержит заголовок документа(если он есть)|
DataCount=#6:number|
Width=139
Height=130
link(doPrint,16633762:doPrint,[(31,27)(31,111)])
}
Add(HTM_A,16633762,42,105)
{
link(onPrint,12246463:doEcho,[])
link(Href,13036852:Result,[(55,97)(48,97)])
}
Add(Echo,12246463,98,105)
{
link(Message,1800972:Var3,[(104,37)])
}
Add(StrCat,13036852,42,56)
{
Str1="?number="
link(Str2,1800972:Var2,[])
}
Add(GetDataEx,1800972,42,28)
{
Angle=3
link(Data,3206436:number,[(27,37)])
}
END_SDK
Add(StrCat,14690381,196,98)
{
link(Str1,12410292:Var3,[(202,86)(188,86)])
}
Add(Echo,15311216,140,161)
{
link(onEcho,15703388:doEcho,[])
link(Message,12410292:Var1,[(146,142)])
}
Add(Echo,665424,238,161)
{
link(Message,9861824:Var3,[(244,142)])
}
Add(GetDataEx,12410292,175,133)
{
Angle=1
link(Data,9861824:Var1,[])
}
Add(Echo,15703388,189,161)
{
Message="<br>"
link(onEcho,665424:doEcho,[])
}

то получим 100% оптимальный код:
<?php
  $s7 = "";

for($i1 = 0; $i1 < 10; $i1++) {
$s7 .= "<a href="?number=".$i1."">".$i1."</a>";
}
echo $s7;
echo "<br>";
echo $s7;

// made by "HiAsm 3.65 build 166"
?>



------------ Дoбавленo:


Stasie писал(а):
Кстати, может быть прикрутить какую нибудь штуку к пакету web, типа предварительной генерации кода

при нажатом Ctrl можно подвести к любой точке типа Work и HiAsm отобразит в подсказке кусок генерируемого для данного элемента кода в соответствие с его свойствами, подключением точек и данных из потока.


карма: 26
0
файлы: 2code_7375.txt [694B] [495], web_pack_hint.png [4.1KB] [477]
2
Сообщение
...
Прикрепленные файлы
(файлы не залиты)