Вверх ↑
Этот топик читают: Гость
Главный модератор
Ответов: 2997
Рейтинг: 395
#1: 2009-09-15 00:36:12 ЛС | профиль | цитата
Можно ли в коде hws организовать стэк?

Как следует из описания в массив элементы добавлять можно, но пока удалять нельзя. Можно, конечно, сразу сделать массив на "много" элементов и "ползать" по нему указателем.

А как бы сделали профи?
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2009-09-15 00:44:23 ЛС | профиль | цитата
на самом деле проще добавить удаление из массива
карма: 26
0
Главный модератор
Ответов: 2997
Рейтинг: 395
#3: 2009-09-15 00:49:12 ЛС | профиль | цитата
По аналогии с js методы .push и .pop
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Администрация
Ответов: 15294
Рейтинг: 1518
#4: 2009-09-15 00:58:13 ЛС | профиль | цитата
не совсем.
- добавление a &= value
- удаление _arr.delete(a, index)
карма: 26
0
Главный модератор
Ответов: 2997
Рейтинг: 395
#5: 2009-09-15 01:20:36 ЛС | профиль | цитата
Dilma, остаются проблему порядка инициализации компонентов. Пытаюсь их решить организацией стэка уровня вложенности контейнеров. То есть при пересечении границ контейнера записывать в стэк контейнер возврата для подъема по уровню вложенности. Всё это для синхронизации контейнеров WSO с контейнерами SHA.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Администрация
Ответов: 15294
Рейтинг: 1518
#6: 2009-09-15 10:27:28 ЛС | профиль | цитата
Nic писал(а):
остаются проблему порядка инициализации компонентов

какие?
карма: 26
0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2009-09-15 16:45:01 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 06:29:39
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#8: 2009-09-16 21:42:19 ЛС | профиль | цитата
Dilma писал(а):
какие?


Смотри в личке.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2009-09-17 11:38:36 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 06:29:39
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#10: 2009-09-17 11:40:21 ЛС | профиль | цитата
Решение со стэком работает только на один уровень вложенности контейнеров. Подробности в личке.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Главный модератор
Ответов: 2997
Рейтинг: 395
#11: 2009-11-04 10:47:06 ЛС | профиль | цитата
Dilma, для FTCG зарезервировано _arr.count( arr_name ), но не могу создать свойство компонента с именем Count, точнее, соэдать могу, но тогда нативный код генерится не правильно. Хотя имя нижней точки может быть Count без последствий. Что здесь: ограничение CG или ошибка?

Вот тестовая не рабочая схема:

Add(MainForm,2953706,77,63)
{
Point(doText)
link(onCreate,5459948:doEvent1,[])
}
Add(CountTest,11339174,210,63)
{
Count=10
Point(doCount)
}
Add(Hub,5459948,126,63)
{
link(onEvent1,4477793:doData,[])
link(onEvent2,7887487:doData,[(150,76)(150,111)])
}
Add(DoData,7887487,210,105)
{
link(onEventData,2953706:doText,[(253,111)(253,148)(65,148)(65,104)])
link(Data,11339174:Count,[])
}
Add(DoData,4477793,161,63)
{
Data=Integer(1000)
link(onEventData,11339174:doCount,[])
}

Вот тестовый компонент

К тому же, "старая" проблема совпадения имён свойств с именами нижних точек остаётся пока также не решённой.

Вот так сегодня выглядит рабочий вариант компонента
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 2counttest_component.rar [380B] [318], counttest_workvariant.rar [409B] [316]
Администрация
Ответов: 15294
Рейтинг: 1518
#12: 2009-11-04 11:44:56 ЛС | профиль | цитата
Nic писал(а):
но не могу создать свойство компонента с именем Count

все верно: Встроенные функции

count (array)
Возвращает количество элементов в массиве array

карма: 26
0
Главный модератор
Ответов: 2997
Рейтинг: 395
#13: 2009-11-04 11:47:52 ЛС | профиль | цитата
А как на счёт совпадения имени свойства с именем нижней точки?
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Администрация
Ответов: 15294
Рейтинг: 1518
#14: 2009-11-04 11:52:33 ЛС | профиль | цитата
пока сюда http://dev.hiasm.com/
------------ Дoбавленo в 11.54:
думаю нужно как в SQL сделать - давать возможность заключать имена свойств в какие либо кавычки для исключения совпадений со встроенными операторами
карма: 26
0
Главный модератор
Ответов: 2997
Рейтинг: 395
#15: 2009-11-04 12:04:47 ЛС | профиль | цитата
Тестовый компонент на совпадающие имена свойства и нижней точки.
Схема:

Add(MainForm,2953706,77,63)
{
Point(doText)
link(onCreate,5459948:doEvent1,[])
}
Add(CountTest,11339174,210,63)
{
Count_=10
Point(doCount_)
}
Add(Hub,5459948,126,63)
{
link(onEvent1,4477793:doData,[])
link(onEvent2,7887487:doData,[(150,76)(150,111)])
}
Add(DoData,7887487,210,105)
{
link(onEventData,2953706:doText,[(253,111)(253,148)(65,148)(65,104)])
link(Data,11339174:Count_,[])
}
Add(DoData,4477793,161,63)
{
Data=Integer(1000)
link(onEventData,11339174:doCount_,[])
}

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 2testequalnames.rar [359B] [320], mt_test.png [3.3KB] [380]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)