empchar;
j + +;
}
if (tempchar == ';') {
control_buff [j] = tempchar;
correction_counter + +;
j + +;
}
if (tempchar == EOF) {
tempFile [i] = tempchar;
control_buff [j] = tempchar;
break;
}
tempFile [i] = tempchar;
i + +;
}
// чи правильно розставлені знаки пріпенанія
for (i = 0; i <= j; i + +) {
if (control_buff [i] == '=') {
if (control_buff [i +1]! = ';') {
logmsg ("У файлі коригування виявлена ​​помилка. Коригування враховані не будут33 ");
return 0;
}
}
if (control_buff [i] == ';') {
if (! (control_buff [i +1] == '=' | | control_buff [i +1] == EOF)) {
logmsg ("У файлі коригування виявлена ​​помилка. Коригування враховані не будут331 ");
return 0;
}
}
}
// MessageBox (NULL, tempFile, "прочитав", MB_OK);
* CorrectionList = new TCorrection [correction_counter];
// заполяне масив виправлень
tempchar = 0;
i = 0;
n = 0;
while (tempchar! = EOF) {
while (tempFile [i]! = '=') {
(* CorrectionList) [n]. name + = tempFile [i + +];
}
// (* CorrectionList) [n]. name [j] = ' 0';
i + +;
while (tempFile [i]! = ';') {
(* CorrectionList) [n]. new_name + = tempFile [i + +];
}
// (* CorrectionList) [n]. new_name [j] = ' 0';
n + +;
tempchar = tempFile [+ + i];
}
/* for (j = 0; j
MessageBox (NULL, (* CorrectionList) [j]. Name, "", MB_OK);
MessageBox (NULL, (* CorrectionList) [j]. New_name, "", MB_OK);
} */
delete [] tempFile;
fclose (CorrectFilePtr);
return correction_counter;
}
// --------------------------------------------- ----------------- void __fastcall Executing :: Execute ()
{
CoInitialize (NULL);
char item_type;
DWORD res;
char received_data [255];
unsigned int received_version = 0;
AnsiString mes;
int i, j, index, modules_counter, all_modules, p, param_num;
int error = 0;
if (! FileExists ("device_list.xml")) {
MessageBox (NULL, "Файл device_list.xml не був знайдений "," Помилка ", MB_ICONERROR | MB_OK);
PostMessage (Form1-> Handle, WM_CLOSE, 0,0);
return;
}
if (! FileExists ("module_list.xml")) {
MessageBox (NULL, "Файл module_list.xml не був знайдений "," Помилка ", MB_ICONERROR | MB_OK);
PostMessage (Form1-> Handle, WM_CLOSE, 0,0);
return;
}
// обробка вхідних параметрів
if (ParamCount () == 0) {
MessageBox (NULL, "Не було передано жодної параметра! "," Помилка ", MB_ICONERROR | MB_OK);
PostMessage (Form1-> Handle, WM_CLOSE, 0,0);
return;
}
// отримати управління над функціями бібліотеки ProgExchCl.dll
res = ProgExchCl_LoadLibrary ();
if (res! = 0x0)
{
sprintf (received_data, "Помилка % D при зверненні до бібліотеці "ProgExchCl.dll ". ", Res);
MessageBox (NULL, received_data, "Помилка", MB_OK);
}
// відкриття каналу видачі даних на екран
sprintf (received_data, "PipeDisplay% d", GetCurrentProcessId ());
res = mOpen (received_data, & m_Disp);
if (res == 0x0)
{
// перекладати висновок в режим налагоджувальної (0x01 0x02) або звітної (0x01 0x01) інформації
received_data [0] = 0x01; received_data [1] = 0x01;
res = mWrite (m_Disp, received_data, 2, & Wrtd);
if (res! = 0x0)
{
sprintf (received_data, "Помилка% d при перекладі виведення в режим налагоджувальної інформації ", res);
MessageBox (NULL, received_data, "Помилка", MB_OK);
logmsg (received_data);
}
Form1-> WindowState = wsMinimized;
}
else {
sprintf (received_data, "Помилка% d при відкритті каналу видачі даних на екран ", res);
logmsg (AnsiString (received_data));
logmsg (AnsiString ("Режим автономної роботи"));
Form1-> WindowState = wsNormal;
}
cor_count = get_correction (& Correction);
// відкриття XML-файла
Form1-> XMLDocument1-> FileName = "Device_list.xml";
Form1-> XMLDocument1-> Active = true;
item_type = DeviceOrModule (ParamStr (1), & Index);
// отримання списку модулів входять до складу приладу
if (item_type == 0) {
MessageBox (NULL, "Прилад або модуль був знайдено "," Помилка ", MB_ICONERROR | MB_OK);
PostMessage (Form1-> Handle, WM_CLOSE, 0,0);
return;
}
if (item_type == 1) {
GetModuleList...