function SC_SearchItem

Наверх  Предыдущая  Последующая |

function SC_SearchItem(AName, AVal : string; AFullComp : boolean) : integer;

 

Поиск элемента по его значению. Выполняет поиск в текущем теге базы XML, обрабатываются значения параметров с именем AName, AVal - сравнение не чувствительно к регистру. AFullComp - параметр, управляющий режимом сравнения. Если он равен TRUE, то выполняется полное сравнение образца и значения параметра с именем AName, если он равен FALSE, то ищется вхождение AVal в значениях параметра с именем AName.

 

В случае успешного поиска функция возвращает индекс первой найденной записи, в случае остутствия совпадений или ошибки - значение "-1".

 

На заметку: Данная функция предназначена для простейшего поиска. Для более сложного поиска (по нескольким параметрам и т.п.) следует организовать цикл от 0 до SC_GetItemsCount-1 и в нем проверять любые условия, получая значения параметров через SC_GetItem. Однако в случае, если поиск возможен через SC_SearchItem, то следует применять именно его, т.к. поиск через SC_SearchItem работает на порядок быстрее, чем аналогичный ему перебор элементов в цикле.

 

Совместимость: AVZ 4.28 и выше

 

 

Пример:

 

var

 Res : boolean;

 i       : integer;

begin

 Res := SC_INIT(GetAVZDirectory + 'LOG\avz_sysinfo.xml');

 if Res then

  AddToLog('Загрузка и парсинг протокола выполнены успешно')

 else begin

  AddToLog('Ошибка загрузки и парсинга протокола');

  exit;

 end;

 if SC_SelectNode('AVZ\KERNELOBJ'then

  AddToLog('Тег KERNELOBJ найден')

 else begin

  AddToLog('Тег KERNELOBJ не найден');

  exit;

 end;

 // Запрос количества вложенных тегов

 AddToLog('SC_GetItemsCount = '+inttostr(SC_GetItemsCount));

 // Поиск тега 

  i := SC_SearchItem('File''AnyDVD', false);

  if i >= 0 then 

   AddToLog('Найден драйвер AnyDVD - ['+inttostr(i)+'] File= "'+SC_GetParamVal(i, 'File''')+'"');

end.