findindexerkey

Функция поиска ключевого слова в индексаторе проектов.

Синтаксис:

findindexerkey(key, filtr_name, filtr_type, sprj_id, sblkpath_id, sblktype_id, spropname_id, fl_find);

Аргументы:

Имя Тип данных Описание
key string Строка с ключевым словом для поиска
filtr_name string Строка с фильтром имени свойства
filtr_type string Строка с фильтром типа блока
sprj_id integer Идентификатор списка строк с именами найденных проектов
sblkpath_id integer Идентификатор списка строк с путями найденных блоков в проекте
sblktype_id integer Идентификатор списка строк с типами найденных блоков в проекте
sprop_id integer Идентификатор списка строк с найденными свойствами блоков в проекте
fl_find boolean Флаг редукции путей поиска

Описание:

findindexerkey(key, filtr_name, filtr_type, sprj_id, sblkpath_id, sblktype_id, spropname_id, fl_find) – функция поиска ключевого слова key с фильтрами имен свойств filtr_name и типов блоков filtr_type в индексаторе проектов. Результаты поиска возвращаются в аргументах sprj_id – идентификатор списка строк с именами найденных проектов, sblkpath_id – идентификатор списка строк с путями найденных блоков в проекте, sblktype_id – идентификатор списка строк с типами найденных блоков в проекте, sprop_id – идентификатор списка строк с найденными свойствами блоков в проекте. Значения флага редукции поиска fl_find: 1 - выводить только уникальные пути блоков, 0 - не обращать внимание на уникальность путей блоков и файлов проектов.

Результат:

Имя Тип данных Описание
    Функция возвращеает результат в аргументы sprj_id, sblkpath_id, sblktype_id, sprop_id.

Пример 1:

_proj = createstringlist;
s_path = createstringlist;
findindexerkey("1000","a","Сумматор",s_proj,s_path,0,0,1);

В примере происходит поиск числа 1000 в свойстве с именем "a" объектов типа "Сумматор".

Пример 2:

initialization
s_proj = createstringlist;
s_path = createstringlist;
s_signal_names = createstringlist;

//Для того чтобы показать выходы используйте ключевое слово usedinputs

findindexerkey("usedinputs","*","*",s_proj,s_path,0,s_signal_names,0);
for(i=0, countstringlist(s_signal_names) - 1) 
 seterrorstr(getstringlist(s_signal_names,i) + " in file " + getstringlist(s_proj,i) + " in block " + getstringlist(s_path,i),0); 
freeobject(s_proj);
freeobject(s_path); 
freeobject(s_signal_names); 
end;

В примере происходит поиск всех использованных входных сигналов во всех проиндексированных проектах в заданной директории.

Дополнительные материалы

  • poisk_v_indekse.dita" format="dita"/>