ПЗ (1229304), страница 14
Текст из файла (страница 14)
ArrEnter[i].repayment = 0;
ArrEnter[i].attractivness = 0;
ArrEnter[i].part_attr = 0;
ArrEnter[i].tax = StrToInt(Form1->ENalog->Text);
ArrEnter[i].price_prod = 0;
ArrEnter[i].store = 0;
ArrEnter[i].gross_profit = 0;
ArrEnter[i].part_gross_profit = 0;
ArrEnter[i].sold = 0;
ArrEnter[i].NoBuy = 0;
ArrEnter[i].part_sold = 0;
Timer = StrToInt(Form1->ETimer->Text);
}
}
catch(...){ShowMessage("Initialization_Variables");}
}
//----------------------------------------------------------------------------
int Func_USD(AnsiString str)
{
int USD;
try
{
str = Read_From_File("USD");
Randomize();
if ((str == "up") || (str == "Up") || (str == "UP"))
{
USD = (rand()%2)+1;
}
if ((str == "stable") || (str == "Stable") || (str == "STABLE"))
{
USD = (rand()%2)-(rand()%2);
}
if ((str == "down") || (str == "Down") || (str == "DOWN"))
{
USD = ((rand()%2)+1)*-1;
}
}
catch(...){USD = 0;}
return USD;
}
//----------------------------------------------------------------------------
double round(double x, int y)
{
int z = pow(10,y);
x *= z;
x = ceil(x);
x /= z;
return x;
}
//----------------------------------------------------------------------------
bool check_serv_config()
{
if ((StrToInt(Read_From_File("tcp_port")) < 1000 ) ||
(StrToInt(Read_From_File("tcp_port")) > 65000))
{
Application->MessageBox(L"Параметр 'tcp_port' необходимо установить"
L"в интервале от 1000 до 65000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("quantity_of_users")) < 2 ) ||
(StrToInt(Read_From_File("quantity_of_users")) > 50))
{
Application->MessageBox(L"Параметр 'quantity_of_users' необходимо установить"
L"в интервале от 2 до 50",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if (Read_From_File("simulation_name") == "" )
{
Application->MessageBox(L"Укажите 'simulation_name'",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("V_market")) < 100 ) ||
(StrToInt(Read_From_File("V_market")) > 1000000))
{
Application->MessageBox(L"Параметр 'V_market' необходимо установить"
L"в интервале от 100 до 1000000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
AnsiString s = Read_From_File("USD");
if ((s != "up" ) && (s != "stable") && (s != "down" ))
{
Application->MessageBox(L"Параметр 'USD' необходимо установить: "
L"или 'up' или 'stable' или 'down'",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Read_From_File("cur_cash")) < 100) ||
(StrToFloat(Read_From_File("cur_cash")) > 1000000))
{
Application->MessageBox(L"Параметр 'cash' необходимо установить"
L"в интервале от 100 до 1000000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Read_From_File("pow_cur_lev")) < 10) ||
(StrToFloat(Read_From_File("pow_cur_lev")) > 10000))
{
Application->MessageBox(L"Параметр 'pow_cur_lev' необходимо установить"
L"в интервале от 10 до 10000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Read_From_File("pow_inc_price")) < 1) ||
(StrToFloat(Read_From_File("pow_inc_price")) > 100))
{
Application->MessageBox(L"Параметр 'pow_inc_price' необходимо установить"
L"в интервале от 1 до 100",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("SRW_start_inc_price")) < 1 ) ||
(StrToInt(Read_From_File("SRW_start_inc_price")) > 100))
{
Application->MessageBox(L"Параметр 'SRW_start_inc_price' необходимо установить"
L"в интервале от 1 до 100",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("st_inner_price")) < 30 ) ||
(StrToInt(Read_From_File("st_inner_price")) > 200))
{
Application->MessageBox(L"Параметр 'st_inner_price' необходимо установить"
L"в интервале от 30 до 200",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("amort_perc")) < 5 ) ||
(StrToInt(Read_From_File("amort_perc")) > 45))
{
Application->MessageBox(L"Параметр 'amort_perc' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("bank_perc")) < 5 ) ||
(StrToInt(Read_From_File("bank_perc")) > 45))
{
Application->MessageBox(L"Параметр 'bank_perc' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("max_occupy")) < 1000 ) ||
(StrToInt(Read_From_File("max_occupy")) > 200000))
{
Application->MessageBox(L"Параметр 'max_occupy' необходимо установить"
L"в интервале от 1000 до 200000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("tax")) < 5 ) ||
(StrToInt(Read_From_File("tax")) > 45))
{
Application->MessageBox(L"Параметр 'tax' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Read_From_File("timer")) < 60 ) ||
(StrToInt(Read_From_File("timer")) > 300))
{
Application->MessageBox(L"Параметр 'timer' необходимо установить"
L"в интервале от 60 до 300",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
return 0;
}
bool check_serv_config_2()
{
if ((StrToInt(Form1->ETCPPort->Text) < 1000 ) ||
(StrToInt(Form1->ETCPPort->Text) > 65000))
{
Application->MessageBox(L"Параметр 'tcp_port' необходимо установить"
L"в интервале от 1000 до 65000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EQOfUsers->Text) < 2 ) ||
(StrToInt(Form1->EQOfUsers->Text) > 50))
{
Application->MessageBox(L"Параметр 'quantity_of_users' необходимо установить"
L"в интервале от 2 до 50",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if (Form1->ESimName->Text == "" )
{
Application->MessageBox(L"Укажите имя симуляции",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EMarket->Text) < 100 ) ||
(StrToInt(Form1->EMarket->Text) > 1000000))
{
Application->MessageBox(L"Параметр 'V_market' необходимо установить"
L"в интервале от 100 до 1000000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
AnsiString s; //= Form1->EChngMarket->Text;
if (Form1->RGPeople->ItemIndex == 0)
{s = "up";}
if (Form1->RGPeople->ItemIndex == 1)
{s = "stable";}
if (Form1->RGPeople->ItemIndex == 2)
{s = "down";}
if ((s != "up" ) && (s != "stable") && (s != "down" ))
{
Application->MessageBox(L"Параметр 'USD' необходимо установить: "
L"или 'up' или 'stable' или 'down'",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Form1->ECash->Text) < 100) ||
(StrToFloat(Form1->ECash->Text) > 1000000))
{
Application->MessageBox(L"Параметр 'cash' необходимо установить"
L"в интервале от 100 до 1000000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Form1->EFonds->Text) < 10) ||
(StrToFloat(Form1->EFonds->Text) > 10000))
{
Application->MessageBox(L"Параметр 'pow_cur_lev' необходимо установить"
L"в интервале от 10 до 10000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToFloat(Form1->EIncPriceFonds->Text) < 1) ||
(StrToFloat(Form1->EIncPriceFonds->Text) > 100))
{
Application->MessageBox(L"Параметр 'pow_inc_price' необходимо установить"
L"в интервале от 1 до 100",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EPriceNIR->Text) < 1 ) ||
(StrToInt(Form1->EPriceNIR->Text) > 100))
{
Application->MessageBox(L"Параметр 'SRW_start_inc_price' необходимо установить"
L"в интервале от 1 до 100",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EPriceProd->Text) < 30 ) ||
(StrToInt(Form1->EPriceProd->Text) > 200))
{
Application->MessageBox(L"Параметр 'st_inner_price' необходимо установить"
L"в интервале от 30 до 200",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EAmort->Text) < 5 ) ||
(StrToInt(Form1->EAmort->Text) > 45))
{
Application->MessageBox(L"Параметр 'amort_perc' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EPrc->Text) < 5 ) ||
(StrToInt(Form1->EPrc->Text) > 45))
{
Application->MessageBox(L"Параметр 'bank_perc' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->EMaxCredit->Text) < 1000 ) ||
(StrToInt(Form1->EMaxCredit->Text) > 200000))
{
Application->MessageBox(L"Параметр 'max_occupy' необходимо установить"
L"в интервале от 1000 до 200000",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->ENalog->Text) < 5 ) ||
(StrToInt(Form1->ENalog->Text) > 45))
{
Application->MessageBox(L"Параметр 'tax' необходимо установить"
L"в интервале от 5 до 45",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
if ((StrToInt(Form1->ETimer->Text) < 60 ) ||
(StrToInt(Form1->ETimer->Text) > 300))
{
Application->MessageBox(L"Параметр 'timer' необходимо установить"
L"в интервале от 60 до 300",L"Внимание",
MB_ICONEXCLAMATION);
return 1;
}
return 0;
}
//---------------------------------------------------------------------------
/* Проверка подключенных клиентов иначе заносим в массив павших */
bool Check_clients(UnicodeString tx)
{
bool a = false;
tx = tx + " ";
if (tx.SubString(1,10) == "Disconnect")
{
int N = StrToInt(Read_From_Text(tx,"Number_Client"));
dead[N] = -1;
a = true;
}















