Отчет по практике: Разработка программы контроля изделий и подготовка программной документации
}
break;
}
}
// LOG->Add(ModuleList[i].name + AnsiString(" ") + ModuleList[i].baseaddress);
}
}
//--------------------------------------------------------------
void __fastcall GetModule(AnsiString Parameter, PModule* ModuleList, int item_index) // получаем информацию для одного модуля
{
int i, j, all_modules;
*ModuleList = new (TModule);
(*ModuleList)[0].name = AnsiString(Form1->XMLDocument1->DocumentElement->ChildNodes->FindNode("default")->ChildNodes->GetNode(item_index)->GetNodeValue());
(*ModuleList)[0].baseaddress = StrToInt(Form1->XMLDocument1->DocumentElement->ChildNodes->FindNode("default")->ChildNodes->GetNode(item_index)->Attributes[WideString("baseaddress")]);
Form1->XMLDocument1->FileName = "module_list.xml";
Form1->XMLDocument1->Active = true;
all_modules = SecondLevelNodeAccess->GetCount();
for (i = 0; i <= all_modules; i++) {
if (i >= all_modules) {
MessageBox(NULL, "Модуль не был найден. Версия недоступна", "Error", MB_ICONERROR | MB_OK );
break;
}
if ((*ModuleList)[0].name == AnsiString(ThirdLevelNodeAccess(i)->GetNode(0)->GetNodeValue())) {
(*ModuleList)[0].version_count = ThirdLevelNodeAccess(i)->GetCount() - 1;
for (j = 0; j < (*ModuleList)[0].version_count; j++) {
(*ModuleList)[0].version[j] = new TVersion;
(*ModuleList)[0].version[j]->address = StrToInt(FourthLevelNodeAccess(i, j+1)->GetNode(0)->NodeValue);
(*ModuleList)[0].version[j]->value = StrToInt(FourthLevelNodeAccess(i, j+1)->GetNode(1)->NodeValue);
(*ModuleList)[0].version[j]->type = StrToInt(FourthLevelNodeAccess(i, j+1)->GetNode(2)->NodeValue);