OberonCore https://forum.oberoncore.ru/ |
|
Lists https://forum.oberoncore.ru/viewtopic.php?f=90&t=1980 |
Страница 1 из 1 |
Автор: | Доровских Александр [ Суббота, 24 Октябрь, 2009 16:32 ] |
Заголовок сообщения: | Lists |
При компиляции многих модулей столкнулся с тем, что отсутствует библиотека Lists. Где взять? (ББ 1.5). (модератор) 19.01.2011 размещено в коллекции: http://oberoncore.ru/bbcc/subs/lists/start |
Автор: | Иван Кузьмицкий [ Суббота, 24 Октябрь, 2009 20:05 ] |
Заголовок сообщения: | Re: Где взять? |
Это самописная библиотека. Её пока нет в коллекциях компонентов, поэтому прикладываю Lists.7z к этому сообщению. вложение удалено модератором |
Автор: | Info21 [ Суббота, 24 Октябрь, 2009 22:06 ] |
Заголовок сообщения: | Re: Где взять? |
Доровских Александр писал(а): При компиляции многих модулей ... Каких? Первый раз про Lists слышу.
|
Автор: | Доровских Александр [ Воскресенье, 25 Октябрь, 2009 01:17 ] |
Заголовок сообщения: | Re: Где взять? |
Stern например. И в других модулях встречается. Ивану Кузьмицкому Гран мерси |
Автор: | Пётр Кушнир [ Воскресенье, 25 Октябрь, 2009 11:20 ] |
Заголовок сообщения: | Re: Где взять библиотеку Lists? |
Подсистема простейшая. была создана вместо множества повторяющихся модулей. Всем привет из стройных рядов ВВ МВД |
Автор: | Info21 [ Воскресенье, 25 Октябрь, 2009 13:40 ] |
Заголовок сообщения: | Re: Где взять библиотеку Lists? |
Пётр Кушнир писал(а): Подсистема простейшая. была создана вместо множества повторяющихся модулей. Любопытно. У меня все списки либо не вписываются в эти схемы, либо проще настолько, что тащить такую подсистему -- избыточная сложность А вот такое наследование, по-моему, ошибка архитектора: Iterator = POINTER TO LIMITED RECORD (IteratorItem) Пётр Кушнир писал(а): Всем привет из стройных рядов ВВ МВД Тоже любопытно. Это как -- почетный долг или просто работа такая?
|
Автор: | Пётр Кушнир [ Воскресенье, 25 Октябрь, 2009 16:33 ] |
Заголовок сообщения: | Re: Где взять библиотеку Lists? |
Не помню, даже, зачем я ввел такое наследование. А в ВВ я в данный момент прохожу срочную службу. Как то так. |
Автор: | Рыжий [ Четверг, 21 Январь, 2010 03:59 ] |
Заголовок сообщения: | Re: Где взять библиотеку Lists? |
Цитата: Любопытно. У меня все списки либо не вписываются в эти схемы, либо проще настолько, что тащить такую подсистему -- избыточная сложность Ага, ну наконец-то! И "поинтер ту" при нем))) |
Автор: | Илья Ермаков [ Четверг, 21 Январь, 2010 11:57 ] |
Заголовок сообщения: | Re: Где взять библиотеку Lists? |
Рыжий писал(а): И "поинтер ту" при нем))) А Вы что хотели? Отношение - оно и в Африке отношение, орграф он и в Африке орграф И пойнтер ту при нём, как конкретная модель на машине. |
Автор: | budden [ Понедельник, 24 Декабрь, 2018 00:04 ] |
Заголовок сообщения: | Re: Lists |
Скачал архив с текущим выпуском. Посмотрел исходный текст. Не 100% уверен, но всё же мне кажется, что при уменьшении размера списка хвост не обнуляется. Поэтому живущие в списке объекты не будут освобождены сборщиком мусора, до тех пор пока не случится одно из двух: а) сам список будет удалён б) список обратно вырастет и эти элементы будут заменены чем-то другим На мой взгляд, это является утечкой памяти. Если это так задумано, то об этом стоило бы написать в документации. |
Автор: | Иван Денисов [ Четверг, 29 Октябрь, 2020 18:03 ] |
Заголовок сообщения: | Re: Lists |
На всякий случай кидаю тут ссылку: https://blackbox.oberon.org/extension/Lists |
Автор: | Иван Денисов [ Среда, 08 Ноябрь, 2023 23:54 ] |
Заголовок сообщения: | Re: Lists |
Просто пример, который делал для чата. Код: MODULE ListsObxOp;
IMPORT ListsOp, Rnd := ObxRandom, Log; TYPE MyData = POINTER TO RECORD x: INTEGER END; MyAddOp = RECORD (ListsOp.AddOp) this*: MyData END; MyForEachOp = RECORD (ListsOp.ForEachOp) this*: MyData END; PROCEDURE (VAR op: MyForEachOp) Do (OUT break: BOOLEAN); BEGIN Log.Int(op.this.x); Log.Ln; END Do; PROCEDURE Test*; VAR i: INTEGER; list: ListsOp.List; addOperation: MyAddOp; forEachOperation: MyForEachOp; BEGIN list := ListsOp.New(); i := 0; WHILE i < 10 DO NEW(addOperation.this); addOperation.this.x := SHORT(ENTIER(Rnd.Uniform() * 5000)); list.Do(addOperation); INC(i); END; list.Do(forEachOperation) END Test; END ListsObxOp. ListsObxOp.Test |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |