Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 24.02.2003 17:48
Надо :)# Топологическая сортировка таблицы # методу передается исходная таблица - table, имя ключевого столбца - key # и имя столбца с ключами предшествующих элементов - prev @sort_table[table;key;prev][table_columns;insert_current_row] # таблица названий столбцов $table_columns[^table.columns[]] # названия столбцов результирующей таблицы $result[^table::create{^table_columns.menu{$table_columns.column}[ ]}] # код вставки текущей строки $insert_current_row{ ^result.join[$table][$.limit(1) $.offset[cur]] } # добавление первого элемента # т.е. у которого prev = 0 ^table.locate[$prev;0] $insert_current_row $prev_key($table.$key) ^while($prev_key && ^table.locate[$prev;$prev_key]){ $insert_current_row $prev_key($table.$key) }