function createDBSN($fil_name)
создать пустую таблицу
здесь: $fil_name - имя файла без расширения
возвращает 0 при ошибке и 1 при успехе
содает 2 пустых файла бинарный и текстовый
function existDBSN($fil_name)
проверить существование файлов DBSN
здесь: $fil_name - имя файла без расширения
возвращает 1 если существуют оба файла таблицы
иначе - 0
function openDBSN($fil_name)
открыть таблицу фрагментов DBSN
здесь: $fil_name - имя файла без расширения
возвращает 4х элем числовой массив обработчика или 0 при ошибке
function closeDBSN(&$dbh)
Закрыть таблицу фрагментов DBSN
здесь: &$dbh – ссылка на обработчик таблицы
возвращает 1 при успехе или 0 при ошибке
function countFragm(&$dbh)
Сосчитать число записей в таблице DBSN
здесь: &$dbh – ссылка на обработчик таблицы
возвращает общее количество записей или 0 при ошибке
function eraseDBSN($fil_name)
Полностью уничтожить таблицу DBSN
здесь: $fil_name - имя файла без расширения
Удаляет с диска оба файла таблицы
function clearDBSN(&$dbh)
очистить все данные из табвлицы
здесь: &$dbh – ссылка на обработчик таблицы
обнуляет длину обоих файлов таблицы
Позиционирование
В этом разделе собраны функции изменяющие номер активного фрагмента
function getNom(&$dbh)
получить номер текущего фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
возвращает номер текущей записи, -номер для удаленной записи
или 0 при ошибке
function setNom(&$dbh, $new_nom)
установить номер текущего фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
$new_nom – новый номер текущего фрагмента
возвращает номер новой текущей записи или 0 при ошибке
function incNom(&$dbh, $count = 1)
увеличить номер текущего фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
|
$count – на сколько нужно увеличить номер текущего фрагмента
(по умолчанию – на 1)
возвращает номер новой текущей записи или 0 при ошибке
function decNom(&$dbh, $count = 1)
уменьшить номер текущего фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
$count – на сколько нужно уменьшить номер текущего фрагмента
(по умолчанию – на 1)
возвращает номер новой текущей записи или 0 при ошибке
function setFirst(&$dbh)
установить номер фрагмента равным 1
здесь: &$dbh – ссылка на обработчик таблицы
возвращает номер новой текущей записи или 0 при ошибке
function setLast(&$dbh)
сделать активным последний фрагмент
здесь: &$dbh – ссылка на обработчик таблицы
возвращает номер новой текущей записи или 0 при ошибке
function findFragmOnStr(&$dbh, $find_str, $str_nom, $nom_beg)
Найти фрагмент таблицы DBSN по заданной строке фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
$find_str - строка поиска
$str_nom - номер искомой строки во фрагменте
$nom_beg - номер фрагмента с которого начинается поиск
просматривает все активные фрагменты начиная с $nom_beg
и останавливается если находит в каком-нибудь заданную строку
возвращает номер записи или 0 при ошибке если не нашла
function findFragmOnPart(&$dbh, $fragm_part, $nom_beg)
Найти фрагмент таблицы DBSN по его части
здесь: &$dbh – ссылка на обработчик таблицы
$fragm_part - часть фрагмента для поиска
$nom_beg - номер фрагмента, с которого начинается поиск
просматривает все активные фрагменты начиная с $nom_beg
и останавливается если находит в каком-нибудь заданный текст
возвращает номер записи или 0 при ошибке если не нашла
function findFragmOnTag(&$dbh, $tag, $nom_beg)
|
Найти фрагмент таблицы DBSN по заданному тэгу
здесь: &$dbh – ссылка на обработчик таблицы
$tag - значение тэга записи для поиска
$nom_beg - номер фрагмента, с которого начинается поиск
просматривает все активные фрагменты начиная с $nom_beg
и останавливается если находит в каком-нибудь заданный тэг
возвращает номер записи или 0 при ошибке если не нашла
function findFragmOnSubst(&$dbh, $find_subst, $subst_nom, $nom_beg)
Найти фрагмент таблицы DBSN по заданной подстроке фрагмента
здесь: &$dbh – ссылка на обработчик таблицы
$find_subst - подстрока поиска
$subst_nom - номер искомой подстроки во фрагменте
$nom_beg - номер фрагмента, с которого начинается поиск
просматривает все активные фрагменты начиная с $nom_beg
и останавливается если находит в каком-нибудь заданную подстроку
возвращает номер записи или 0 при ошибке если не нашла
Чтение данных
function getFragm(&$dbh, &$fragm)
Считать текущий фрагмент таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
&$fragm – переменная, в которую считываем фрагмент
возвращает номер записи, -номер записи, если она удалена
или 0 при ошибке или пустой записи
function getFragmStr(&$dbh, &$fragm_str, $str_nom)
Считать строку текущиего фрагмента таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
&$fragm_str – переменная, в которую считываем строка фрагмента
$str_nom – номер нужной строки фрагмента
возвращает номер записи, -номер записи, если она удалена
или 0 при ошибке или пустой записи или отсутствии строки
function getFragmSubst(&$dbh, &$fragm_subst, $subst_nom)
Считать подстроку текущиего фрагмента таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
|
&$fragm_subst – переменная, в которую считываем подстрока текущего фрагмента
$subst_nom – номер нужной подстроки фрагмента
возвращает номер записи, -номер записи, если она удалена
или 0 при ошибке или пустой записи или отсутствии подстроки
Запись данных
function addFragm(&$dbh, $fragm, $len_beg = 0, $tag = 0)
Добавить запись в таблицу фрагментов DBSN
здесь: &$dbh – ссылка на обработчик таблицы
&$fragm – переменная, содержащая добавляемый фрагмент
$len_beg, $tag - числовые параметры(по умолчанию - 0
возвращает номер добавленой записи(равный их количеству)
или 0 при ошибке
function addFromFile(&$dbh, $fil_name, $fil_offset=0, $new_tag=0)
Добавить фрагмент из текстового файла в таблицу DBSN
здесь: &$dbh – ссылка на обработчик таблицы
$fil_name – имя текстового файла с фрагментами
$fil_offset - смещение фрагмента в текстовом файле
$new_tag - числовой параметр(по умолчанию - 0
в текстовом файле начиная со смещения fil_offset выделяет 1 фрагмент ограниченный "||" или концом файла и добавляет его в базу dbh
возвращает смещение в текстовом файле сразу за фрагментом
или 0 при ошибке
function setFragm(&$dbh, $fragm, $len_beg = -1, $tag = -1)
Записать текст в текущую запись таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
&$fragm – переменная, содержащая добавляемый фрагмент
$len_beg, $tag - числовые параметры(по умолчанию – 1
( в таком случае сохраняет старые значения этих параметров)
возвращает номер текущей записи или 0 при ошибке
function setFragmTag(&$dbh, $new_tag)
Устоновить новое значение Тэга текущего фрагмента таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
$new_tag - числовой параметр(по умолчанию - 0
возвращает номер записи или 0 при ошибке
function delFragm(&$dbh)
Удалить текущий фрагмент таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
просто делает его длину отрицательной
возвращает номер записи или 0 при ошибке
function undelFragm(&$dbh)
Снять признак удаления с текущего фрагмента таблицы DBSN
здесь: &$dbh – ссылка на обработчик таблицы
просто делает его длину неотрицательной
возвращает номер записи или 0 при ошибке
Блочные функции
function selBlock(&$dbh, &$fragm_block, $nom_beg, $block_size = 0, $direction = 0, $fn_sel=”isNotEmpty”, $str_sel=””)
Выбрать блок фрагментов таблицы DBSN начиная с заданного
здесь: &$dbh – ссылка на обработчик таблицы
$fragm_block – массив в который будут выбраны номера фрагментов
$nom_beg – номер записи с которой начинаем обработку
$block_size - число записей, номера котоых нужно выбрать
если 0 то надо выбрать все записи
$direction - направление просмотра таблицы (-1 - назад)
$fn_sel($dbh, $str) - функция отбора фрагментов в блок
возвращает значение > 0 если нужно отобрать номер в блок
если “0” - то отбирается каждая запись
$str_sel - строка сравнения для отбора фрагментов
считывает в массив $fragm_block $block_size номеров активных записей начиная с заданной в направлении к концу dbh если $direction>=0 или к началу усли $direction < 0
возвращает число считанных номеров фрагментов
function filtrBlock(&$dbh, &$res_block, $fragm_block, $block_size, $fn_sel, $str_sel)
Отфильтровать блок таблицы DBSN по условию на фрагмент
здесь: &$dbh – ссылка на обработчик таблицы
$fragm_block – массив из которого берутся номера фрагментов
$res_block – массив в который записываются подходящие номера фрагментов
$block_size - число записей, в блоке которые нужно обработать
$fn_sel($dbh, $str) - функция отбора фрагментов в блок
возвращает значение > 0 если нужно отобрать номер в блок
если “0” - то отбирается каждая запись
$str_sel - строка сравнения для отбора фрагментов
Просматривает все записи в блоке и оставляет только те, которые кдовлетворяют критерию отбора ($fn_sel($dbh, $str) > 0)
возвращает число оставщихся в блоке номеров фрагментов
function filtrUniq(&$dbh, &$fragm_block, $fn_comp)
Отфильтровать блок таблицы DBSN по условию, оставив только первые из аналогичных фрагментов
здесь: &$dbh – ссылка на обработчик таблицы
$fragm_block – массив из которого берутся номера фрагментов
$fn_comp($str1, $str2) - функция сравнения фрагментов
возвращает значение 0, если $str1 можно считать
аналогичной строке $str2
Просматривает все записи в блоке и оставляет из аналогичных только первую
возвращает число оставщихся в блоке номеров фрагментов
function sortBlock(&$dbh, &$fragm_block, $fn_comp)
Отсортировать блок фрагментов таблицы DBSN по функции сравнения фрагментов
здесь: &$dbh – ссылка на обработчик таблицы
$fragm_block – сортируемыймассив номеров фрагментов
$fn_comp($str1, $str2) - функция сравнения фрагментов возвращает значение <0, 0, > 0 в зависимости от которых выполняется перестановка номеров фрагментов
Просматривает все записи в блоке и сортирует их в порядке значений $fn_comp для каждых 2х соседних фрагментов
возвращает число номеров фрагментов в блоке
function addBlock(&$res_blok, $fragm_block1, $fragm_block2)
Сложить 2 блока фрагментов в $res_blok
здесь: &$res_blok – блок для накопления результата
$fragm_block1 – первый блок номеров
$fragm_block2 – второй блок номеров
Предназначена для объединения 2х блоков при реализации функции
«ИЛИ»
возвращает число номеров фрагментов в результирующем блоке.
//==========================================================