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;
В примере происходит поиск всех использованных входных сигналов во всех проиндексированных проектах в заданной директории.