D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Команды системы (TCL) / search-system

search-system

Поиск текстовой строки по всей файловой системе D3

Выполняет поиск записей, содержащих заданную строку символов (или любую из заданных строк), во всех файлах файловой системы D3 и, если требуется, создает и сохраняет список найденных записей. Если передается имя главного словаря счета, то поиск выполняется только в этом счете.

search-system {destination.file} {(options)}  

Программа просматривает каждую запись каждого файла в поиске соответствующей строки символов в любом атрибуте. Если соответствие найдено, программа выводит идентификатор записи (item-id) и атрибут, содержащий соответствующую строку. Можно указать любое количество уникальных строк. Поиск считается успешным, если любая из указанных строк соответствует любому участку атрибута.

Процесс выдает следующие сообщения:

enter the output file name?
(Введите имя выходного файла)

В ответ на это сообщение необходимо ввести имя файла, в котором будут храниться найденные записи (он должен уже существовать). По мере обнаружения записей в выходной файл добавляются "управляющие" записи. Идентификаторы записей (item-ids) присваиваются последовательно, начиная с "1".

enter the search string?
(Введите искомую строку)

В ответ на это сообщение следует ввести одну или несколько строк символов без каких-либо ограничителей. Система предлагает вводить все новые и новые строки для поиска. В качестве символа, обозначающего приемлемость любого символа в данной позиции строки ("wildcard"), можно использовать символ "?" (вопросительный знак). Можно указать до 15 различных строк.

Как уже было сказано, в качестве символа "wildcard" можно использовать символ "?" (вопросительный знак). Если искомая строка содержить символ "?" в его обычном значении, то он должен быть задан как "??" (два вопросительных знака). После ввода последней искомой строки при нажати клавиши <return> в очередном запросе "...string?" на экран выводится следующий запрос:

START LEVEL 0-Mds, 1-Master Dictionary, 2-File
 Dictionary, 3-Data File?
(НАЧАЛЬНЫЙ УРОВЕНЬ 0-Главный словарь системы,
 1-Главный cловарь счета, 2-Cловарь файла, 3-Файл данных?)

Здесь пользователь указывает, с какого "уровня" файловой системы надо начинать поиск. "search-system" имеет иерархическую систему управления уровнями. Имеются четыре уровня:

1 MDS – главный словарь системы;
2 MD – главный словарь счета;
3 Dict File – словарь файла;
4 Data File – файл данных.

Можно указать любой диапазон поиска. В том числе можно указать поиск по файлам данных, чтобы осуществить поиск по всей системе "горизонтально" на этом уровне.

Введите номер уровня, с которого надо начать поиск.

                   +-------------+
                   |      0      |
                   |     MDS     |
                   |   System    |
                   | Master Dict |
                   +-------------+
     +-------------+             +-------------+
     |      1      |             |      1      |
     |     MD      |             |     MD      |
     |   Account   |             |   Account   |
     | Master Dict |             | Master Dict |
     +-------------+             +-------------+
+----------+ +----------+   +----------+ +----------+
|     2    | |     2    |   |     2    | |     2    |
|   File   | |   File   |   |   File   | |   File   |
|   Dict   | |   Dict   |   |   Dict   | |   Dict   |
+----------+ +----------+   +----------+ +----------+
|     3    | |     3    |   |     3    | |     3    |
|   File   | |   File   |   |   File   | |   File   |
|   Data   | |   Data   |   |   Data   | |   Data   |
+----------+ +----------+   +----------+ +----------+

Далее, система спросит либо:

STOP  LEVEL 0-Mds, 1-Master Dictionary, 2-File
 Dictionary, 3-Data File?
(КОНЕЧНЫЙ УРОВЕНЬ ......?)

либо:

LATERAL LEVEL 0-Mds, 1-Master Dictionary, 2-File
 Dictionary, 3-Data File?
(УТОЧНЯЮЩИЙ УРОВЕНЬ ......?)

Здесь указывается уровень, до которого надо продолжать поиск. Программа поиска может либо проходить одну ветвь иерархии (например, один счет и все его файлы), либо проходить ветви определенного уровня "по-горизонтали" (например, все файлы данных всех счетов). КОНЕЧНЫЙ/УТОЧНЯЮЩИЙ уровень должен быть равным или ниже НАЧАЛЬНОГО уровня.

Выходными данными являются записи следующего формата:

  001  имя счета
  002  имя словаря, имя файла данных
  003  идентификатор записи
  004  номер атрибута, в котором была найдена искомая строка
  005  текст атрибута
  006  искомая строка

Опции:

? Выводит на экран информацию по использованию команды.
a Выводит на экран все просмотренные записи, включая те, в которых ничего не найдено.
c Очищает выходной файл перед началом поиска.
m Проверяет на многократные вхождения.
p Направляет вывод на системный принтер через спулер.
s Подавляет вывод на терминал.