|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
есть глобал: 1: ^B(1) = "Team" 2: ^B("ghgjghj") = 54 3: ^B("ghgjghj",2) = "bob" 4: ^B("ghgjghj",3) = "port" 5: ^B("1232") = "red" 6: ^B("1232",3) = "point" 7: ^B("1232",6) = "yellow" и т.д......... задача вывести все значения узлов (через терминал) вниз по дереву, начиная с определенного задаваемого значения допустим с "ghgjghj" результат примерно таков: узел "ghgjghj" = 54 узел 2 = "bob" узел 3 = "port" узел "1232" = "red" узел "1232" = "point" узел "1232" = "yellow" и т.д......... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 14:43 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Совершенно верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 15:18 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Бредятина, спасибо огромное ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 16:35 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Я пьян по случаю ДР коллеги, но мне кажется, что причина в том, что я ничего не понял во втором и третьем посте, не в этом. А ТС - используйте $query иили $order. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 16:46 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
nurekil, В данном случае лучше использовать функцию $query s gl=$na(^B) ; - Глобаль s i="ghgjghj" ; - Стартовый индекс f s i=$q(@gl@(i)) q:i="" w "Узел: "_$na(^(i))_" = "_$g(^(i)) ; не забываем про 2-а пробела после for и после quit по условию ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 16:48 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, по непонятным мне причинам условие выхода из цикла q:i="" не выполняется, поменял его на q:i=" " результат тот же пробовал вводить различные начальные точки i - вывод работает ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 17:24 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Проверьте должно быть два пробела между q:i="" и w Хотя если там нет 2-х пробелов, то скрипт должен вылетать по АНДЕФУ Если не получится $query то можно через $order реализовать: s gl=$na(^B) ; - Глобаль s i="ghgjghj" ; - Стартовый индекс f s i=$o(@gl@(i)) q:i="" w "Узел "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w "Узел "_$na(^(k))_" = "_$g(^(k)) Если глубина глобали увеличиться, то соответственно нужно будет добавить еще один цикл. P.S. Мне приходилось на М-языке разрабатывать/сопровождать много разных приложений и программ из разных областей: банки, бухгалтерия, документооборот, биллинговые системы, интерфейсы разных уровней, писал архиватор на MSM и прочие задачи. И я абсолютно уверен, что если в скрипте приходится использовать функцию $query, то это первый признак того, что структура базы разработана коряво. Хотя не исключаю, что существуют исключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 17:48 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Пишу скрипт напрямую в редакторе форума, поэтому ошибочку допустил - там во втором цикле в quit по условию нужно указать переменную k Модератор: Исправлено ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 18:00 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, практически работает, в результате работы (при начальной точке "ghgjghj") выдает пустую строку, потому что дальше ничего нет, но хотелось бы чтобы выводило включительно начиная с ("ghgjghj") при начальной точке "1232" идет вниз по дереву не включая "1232"-глобал 1: ^C(1) = "Team" 2: ^C(1232) = "red" 3: ^C(1232,3) = "point" 4: ^C(1232,6) = "yellow" 5: ^C("ghgjghj") = 54 6: ^C("ghgjghj",1) = "bob" 7: ^C("ghgjghj",2) = "port" 8: ^C("ghgjghj",3) = "port" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 18:56 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Все правильно, цифры всегда вначале списка, если нужно включительно с конкретного индекса начинать, определяем стартовый индекс следующим образом: s i="ghgjghj",i=$o(@gl@(i),-1) ; - Стартовый индекс если стартовый индекс указать "" то цикл переберет всю глобаль. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 19:06 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, в этом то и вся соль, если в качестве начальной точки водить s i="ghgjghj" , то результат выполнения[img=[img=]] видимо все дело в то что нач. индекс строка, а не число не знаешь случаем что нужно сделать, чтобы хавало строку?? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 19:24 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Посмотрите внимательно на мой предыдущий пост. Все должно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 19:39 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, s i="ghgjghj",i=$o(@gl@(i),-1) ; - Стартовый индекс результат таков ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:12 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
nurekil, ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:13 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-NПосмотрите внимательно на мой предыдущий пост. Все должно работать. результат следующий: USER>Do ^points Point ^C(1232) = red Point ^C(1232,3) = point Point ^C(1232,6) = yellow Point ^C(1) = Team USER> ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:15 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Что-то не так. Покажите текст программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:23 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, S ^C(1)="Team" S ^C(1232)="red" S ^C(1232,3)="point" S ^C(1232,6)="yellow" S ^C("ghgjghj")=54 S ^C("ghgjghj",1)="bob" S ^C("ghgjghj",2)="port" S ^C("ghgjghj",3)="port" s gl=$na(^C) s i="ghgjghj" f s i=$o(@gl@(i),-1) q:i="" w !, "Point "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w !, "Point "_$na(^(k))_" = "_$g(^(k)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:33 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Вы не так меня поняли, должно быть следующим образом (разбил детально с комментариями): s gl=$na(^C) s i="ghgjghj" ; - Стартовый индекс s i=$o(@gl@(i),-1) ;- Предыдущее значение от стартового индекса f s i=$o(@gl@(i)) q:i="" w !, "Point "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w !, "Point "_$na(^(k))_" = "_$g(^(k)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:44 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-N, спасибо все заработало, выводит включительно с начальной точкой P.S. читал в методичке, что Функция$O((…),-1) – обратный относительно функции$O[rder] проход по уровням дерева ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 20:58 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Все правильно в методичке написано. Вообще $order - это одна из основных функций. Если вы планируете работать с М-системами, то необходимо уметь читать текст, понимать что происходит и т.д. Все придет с опытом. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2013, 21:10 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
AvA-Nf s i=$o(@gl@(i)) q:i="" w "Узел "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w "Узел "_$na(^(k))_" = "_$g(^(k)) Если глубина глобали увеличиться, то соответственно нужно будет добавить еще один цикл. Рекурсия спасёт отца русской демократии ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 08:48 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
П.С.М.Рекурсия спасёт отца русской демократии ;) Рекурсия - фигня! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Нужно использовать правильные функции... Результат работы Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 09:22 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Нужно использовать правильные функции... Так то да, но вроде как у ТС что-то не задолось с использования $query несколькими постами выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 10:25 |
|
помогите начинающему с глобалами
|
|||
---|---|---|---|
#18+
Замодернизировал немного: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 11:12 |
|
|
start [/forum/topic.php?fid=39&fpage=27&tid=1557162]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 174ms |
0 / 0 |