FindInModulesResult FindInModules(FindInModulesArg tArgs)
tArgs. Параметры выполнения операции.
Операция FindInModules осуществляет поиск текста по коду объектов среды разработки.
Операция позволяет найти все модули/формы, в коде которых встречается заданная строка. Поиск осуществляется в соответствии с параметрами, указанными в tArgs. Результатом работы операции будет список найденных объектов, а также информация о найденном тексте (строка, в которой находится искомый текст, и индекс позиции в ней).
Ниже приведён пример использования операции FindInModules для поиска заданной строки в коде модулей. В запросе передаётся моникёр папки, которой будет ограничена зона поиска, искомый текст и другие параметры поиска. В ответе приходит информация о модулях, в коде которых встречается искомый текст. В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"FindInModules" :
{
"tArgs" :
{
"root" :
{
"id" : "S1!M!171999"
},
"caseSensitive" : "false",
"wholeWordsOnly" : "false",
"findString" : "Create"
}
}
}
{
"FindInModulesResult" :
{
"result" :
{
"it" :
[
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "Public Constructor Create;",
"row" : "4",
"pos" : "21"
},
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "End Constructor Create;",
"row" : "7",
"pos" : "18"
},
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "Public Constructor CreateWithParams(Size: Integer; DefaultValue: Double = 0);",
"row" : "9",
"pos" : "21"
},
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "End Constructor CreateWithParams;",
"row" : "15",
"pos" : "18"
},
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "obj := New TestObject.CreateWithParams(10, 100);",
"row" : "27",
"pos" : "24"
},
{
"moduleId" :
{
"id" : "M_ADDITIONAL"
},
"foundLine" : "Debug.WriteLine("The main procedure is running. The object is created.");",
"row" : "28",
"pos" : "64"
}
]
}
}
}
public static FindInModulesResult FindInModules(MbId mb, string root, string text)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tFind = new FindInModules()
{
tArgs = new FindInModulesArg()
{
findString = text,
root = new OdId() { id = mb.id + "!" + FindObjectById(mb, root).k },
caseSensitive = false,
wholeWordsOnly = false
}
};
//Поиск по коду модулей
var result = somClient.FindInModules(tFind);
return result;
}
См. также: