Модуль для работы с таблицами данных

Модуль для работы с таблицами данных

Набросал модуль для работы с таблицами данных. Что с его помощью можно делать:

  • Создавать таблицу с произвольным числом колонок.
  • Добавлять, находить и удалять строки в таблице.
  • Получать и устанавливать значения произвольных ячеек в таблице.
  • Сортировать строки таблицы как по одной, так и по нескольким колонкам в порядке возрастания и убывания.
  • Для доступа к отдельным строкам (чтение или запись значений ячеек) использовать не только номера строк, но и уникальные значения из какой-либо колонки (работа с индексом).
  • Выгружать строку таблицы в ассоциативный массив.
  • Перебирать таблицу в любом направлении: от первой строки до последней и наоборот.
  • Выбирать, копировать и удалять строки таблицы (как все, так и по заданному фильтру).
  • Получать число строк в таблице (как всех, так и по заданному фильтру).


Текущая версия: 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 'Таб.Удалить','Персонажи'

Модуль (документацию и пример работы) можно скачать здесь.
Вопросы и комментарии можно оставлять как здесь, так и в основной теме модуля.

Изменено: Olegus t.Gl.
07.Дек.14 20:35:32
Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Обновил модуль.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Любопытный модуль, напоминает NOSQL базу данных smile

Ntropy
useravatar
Offline
146 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Добавил модуль с англоязычными вариантами команд. В архиве (в первом сообщении темы ссылка на модуль также изменена на актуальную) лежат обе версии. В документацию добавлены англоязычные аналоги команд.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Версия 1.2 (скачать):

Добавил в модуль команду "Таб.Сортировать". Теперь строки таблицы можно сортировать как по одной, так и по нескольким колонкам по возрастанию и убыванию.

Код:

GS 'Таб.Сортировать', 'Персонажи', 'Раса, Здоровье-'

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Пара вопросов:
(1) Если я сделал сортировку таблицы, а потом добавил строку, то новая строка тоже будет подчиняться порядку сортировки, или таблицу надо заново сортировать?
(2) Как лучше всего реализовать выборку из таблицы, если она (выборка) с 2 и больше условиями? Создать промежуточную таблицу?

квентор
useravatar
Offline
1 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

квентор написал(а):

Пара вопросов:
(1) Если я сделал сортировку таблицы, а потом добавил строку, то новая строка тоже будет подчиняться порядку сортировки, или таблицу надо заново сортировать?

Новые строки добавляются в конец таблицы, сортировать нужно будет заново.

квентор написал(а):

(2) Как лучше всего реализовать выборку из таблицы, если она (выборка) с 2 и больше условиями? Создать промежуточную таблицу?

Да, пока только последовательным копированием с заданными условиями.

Пишите сюда пожелания — буду учитывать запросы в случае продолжения работы над модулем.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Небольшие обновления в модуле (1.3.1):


  • Добавлена возможность получения уникального идентификатора строки и использование его при получении данных из таблицы.

  • Добавлена возможность работы с числовыми индексами.


Скачать можно отсюда.
Полное описание модуля всё там же.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Olegus t.Gl.,
Здравствуйте. Объясните, пожалуйста.  Надо: сформировать таблицу на одной локации и отобразить на другой. КАК это можно сделать?

Poganec37
useravatar
Offline
14 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с таблицами данных

Poganec37,
это не то. Вернее не совсем то.))

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1416 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1023
Всего опросов:
14
Всего сообщений:
16790423
Всего сообщений сегодня:
1
Пользователи форума:
 
Всего пользователей:
2239
Последним зарегистрировался:
4ugskor