Отчет по практике: Разработка программы контроля изделий и подготовка программной документации
int i, all_nodes;
// ищем прибор
all_nodes = SecondLevelNodeAccess->GetCount(); // количество тегов второго уровня
for (i = 0; i < all_nodes; i++) {
if(AnsiString(SecondLevelNodeAccess->GetNode(i)->Attributes[WideString("name")] ) == Parameter){
*item_index = i;
return 1;
}
}
// если прибор не найден, ищем модуль в теге default
all_nodes = SecondLevelNodeAccess->FindNode("default")->ChildNodes->GetCount(); // количество тегов третьего уровня в теге default
for (i = 0; i < all_nodes; i++) {
if(AnsiString(SecondLevelNodeAccess->FindNode("default")->ChildNodes->GetNode(i)->Text) == Parameter){
*item_index = i;
return 2;
}
}
return 0;
}
//--------------------------------------------------------------
void __fastcall GetModuleList(AnsiString Parameter, PModule* ModuleList, int item_index, int* modules_counter) // получение списка модулей входящих в состав прибора
{
int i, j, k, p, all_modules, version_count;
AnsiString mes;
*modules_counter = ThirdLevelNodeAccess(item_index)->GetCount(); // количество модулей в приборе
*ModuleList = new TModule[*modules_counter]; // выделяем память под массив модулей
for (i = 0; i < *modules_counter; i++) { // заполняем поля name и baseaddress
if(cor_count)
{