Модуль для работы с таблицами данных
Модуль для работы с таблицами данных
Набросал модуль для работы с таблицами данных. Что с его помощью можно делать:
- Создавать таблицу с произвольным числом колонок.
- Добавлять, находить и удалять строки в таблице.
- Получать и устанавливать значения произвольных ячеек в таблице.
- Сортировать строки таблицы как по одной, так и по нескольким колонкам в порядке возрастания и убывания.
- Для доступа к отдельным строкам (чтение или запись значений ячеек) использовать не только номера строк, но и уникальные значения из какой-либо колонки (работа с индексом).
- Выгружать строку таблицы в ассоциативный массив.
- Перебирать таблицу в любом направлении: от первой строки до последней и наоборот.
- Выбирать, копировать и удалять строки таблицы (как все, так и по заданному фильтру).
- Получать число строк в таблице (как всех, так и по заданному фильтру).
Текущая версия: 1.3.1 (скачать)
Документация on-line: ссылка
Пример кода работы с таблицей:
Код:
ADDQST 'otg_lib_table.qsp'
GS 'Таб.Создать','Персонажи','Имя, Здоровье, Раса'
GS 'Таб.СоздатьИндекс','Персонажи','Имя'
GS 'Таб.ДобавитьСтроку','Персонажи','Крокодил',90,'Варвар'
GS 'Таб.ДобавитьСтроку','Персонажи','Арабелла',77,'Амазонка'
GS 'Таб.ДобавитьСтроку','Персонажи','Адельм',60,'Монах'
GS 'Таб.ДобавитьСтроку','Персонажи','Каннибал',75,'Варвар'
GS 'Таб.ДобавитьСтроку','Персонажи','Марина',77,'Амазонка'
GS 'Таб.Сортировать', 'Персонажи', 'Раса,Здоровье-'
GS 'Таб.Установить','Персонажи','Адельм','Здоровье',25
GS 'Таб.Выбрать','Персонажи','Раса','=','Варвар'
:перебор_строк_таблицы
if func('Таб.Следующая','Персонажи','Герой'):
*NL func('Таб.Значение','Персонажи','Номер строки')+'. '+$Герой['Имя']+' ('+Герой['Здоровье']+')'
JUMP 'перебор_строк_таблицы'
end
GS 'Таб.Удалить','Персонажи'
Модуль (документацию и пример работы) можно скачать здесь.
Вопросы и комментарии можно оставлять как здесь, так и в основной теме модуля.
07.Дек.14 19:35:32
Re: Модуль для работы с таблицами данных
Добавил модуль с англоязычными вариантами команд. В архиве (в первом сообщении темы ссылка на модуль также изменена на актуальную) лежат обе версии. В документацию добавлены англоязычные аналоги команд.
Re: Модуль для работы с таблицами данных
Версия 1.2 (скачать):
Добавил в модуль команду "Таб.Сортировать". Теперь строки таблицы можно сортировать как по одной, так и по нескольким колонкам по возрастанию и убыванию.
Код:
GS 'Таб.Сортировать', 'Персонажи', 'Раса, Здоровье-'
Re: Модуль для работы с таблицами данных
Пара вопросов:
(1) Если я сделал сортировку таблицы, а потом добавил строку, то новая строка тоже будет подчиняться порядку сортировки, или таблицу надо заново сортировать?
(2) Как лучше всего реализовать выборку из таблицы, если она (выборка) с 2 и больше условиями? Создать промежуточную таблицу?
Re: Модуль для работы с таблицами данных
квентор написал(а):
Пара вопросов:
(1) Если я сделал сортировку таблицы, а потом добавил строку, то новая строка тоже будет подчиняться порядку сортировки, или таблицу надо заново сортировать?
Новые строки добавляются в конец таблицы, сортировать нужно будет заново.
квентор написал(а):
(2) Как лучше всего реализовать выборку из таблицы, если она (выборка) с 2 и больше условиями? Создать промежуточную таблицу?
Да, пока только последовательным копированием с заданными условиями.
Пишите сюда пожелания — буду учитывать запросы в случае продолжения работы над модулем.
Re: Модуль для работы с таблицами данных
- Список
- » Обсуждение и разработка игр
- » Модуль для работы с таблицами данных
Информация
- Статистика форума:
- Всего тем:
- 1062
- Всего опросов:
- 14
- Всего сообщений:
- 16791271
- Бездействующий:
- Пользователи форума:
- Всего пользователей:
- 2903
- Последним зарегистрировался:
- Rfr

