Пример #1
0
unsigned int NH_IRC::HandleMessage(unsigned int handler_id, char *buffer, long int buf_size){

if (!buffer) return handler_id;

char message[256];

std::string AllMessages;
std::string OutString;

if (buffer) buffer[buf_size]='\0';
AllMessages=cut_buffer+buffer;

std::string Message;
int pos=0; //главный цикл

std::string Nick="";
std::string User="";
std::string Host="";
std::string Action="";

std::string Other="";

std::vector<std::string> Params;
//std::string Sender="";
//std::string Params="";
//std::string Params2="";

bool automated = true; // надо ли вызывать Custom-обработчик или обошлись своими силами

while (pos!=-1) {
    pos=AllMessages.find_first_of("\n");
    if (pos!=-1) {
        Message = AllMessages.substr(0,pos-1);
        AllMessages=AllMessages.substr(pos+1,AllMessages.length()-pos+1);
        } else Message="";

    if (Message.length()==0) continue;

//    ((CEventLog *)MegaBase->GetVoidParam("EventLog"))->ExtLogMsg(ExtLogName,"---Message---");
//    ((CEventLog *)MegaBase->GetVoidParam("EventLog"))->ExtLogMsg(ExtLogName,(char*)(">"+Message+"<").c_str());
//    ((CEventLog *)MegaBase->GetVoidParam("EventLog"))->ExtLogMsg(ExtLogName,"---End Message---");

printf("---Message---\n");
printf("%s\n",Message.c_str());
printf("---End Message---\n");

// первоначальная стадия
if (handler_id==0) {
//SendMessage(";","NICK "+LoginName+"\nUSER AmberNetVR Amber server :"+GetParam("UserName")+"\n");
std::string send="NICK "+std::string(GetParam("NickName"))+"\nUSER "+std::string(GetParam("UserName"))+" "+std::string(GetParam("HostName"))+" "+GetParam("ServerName")+"  :"+GetParam("RealName")+"\n";

//SendMessage(";",send);
Send("NICK","server", std::string(GetParam("NickName")).c_str() );
Send("USER","server", ASN_Str( std::string(GetParam("UserName"))+" "+std::string(GetParam("HostName"))+" "+GetParam("ServerName")+"  :"+GetParam("RealName")).c_str() );

handler_id=1;
//continue;
};

if (Message.substr(0,4) == "PING"){ // получили ПИНГ
Send("PONG","server",Message.substr(6,Message.length()-6).c_str());
//SendMessage(";","PONG "+Message.substr(6,Message.length()-6)+"\n");
std::string OutText="NH_IRC: PING-PONG...";
//LOGGER->ExtLogMsg(ExtLogName, IntToStr( Message.length()) + OutText );
automated=false;
continue;
};

if (Message.at(0)==':'){
    // (nick!user@host)
    int tmp_pos=Message.find_first_of(" !",1);
    if (tmp_pos==-1) {continue;}
    else {
    Nick=Message.substr(1,tmp_pos-1);
    Message=Message.substr(tmp_pos);
//    printf("Nick: >%s<\n",Nick.c_str());
    Params.push_back( Nick ); // Params[0] - Nick

        if(Message.at(0)=='!') { //только если это не просто ник, а nick!user@host - имеет смысл разбирать дальше
                int tmp_pos=Message.find_first_of(" @",1);
                if (tmp_pos==-1) {}
                else {
                User=Message.substr(1,tmp_pos-1);
                Message=Message.substr(tmp_pos);
//                printf("User: >%s<\n",User.c_str());

                if(Message.at(0)=='@') { //только если это не просто ник, а nick!user@host - имеет смысл разбирать дальше
                                int tmp_pos=Message.find_first_of(" ",1);
                                if (tmp_pos==-1) {}
                                else {
                                Host=Message.substr(1,tmp_pos-1);
                                Message=Message.substr(tmp_pos);
//                                printf("Host: >%s<\n",Host.c_str());
                                };
                                };
                };
         }; //if(Message.at(0)=="!")
    };

}; //if (Message.at(0)==':'){

Message=Message.substr(1);

int tmp_pos=Message.find_first_of(" ",1);
if (tmp_pos!=-1){
Action=Message.substr(0,tmp_pos);
if (irc_cd.find(Action)!=irc_cd.end()) Action=irc_cd[Action];
Message=Message.substr(tmp_pos+1);
//printf("Action: >%s<\n",Action.c_str());
Params.push_back( Action ); // Params[1] - Action
}

Other=Message;

while (Message.size()>0){

    if (Message.at(0)==':'){
    Params.push_back( Message.substr(1) );
//    printf("Params >%s<\n",Params.c_str());
    Message="";//Message.substr(tmp_pos+1);
    break;
    }

    else {
    int tmp_pos=Message.find_first_of(" ",1);
    if (tmp_pos==-1) {
        Params.push_back( Message );
        Message="";
        break;
        };
    Params.push_back( Message.substr(0,tmp_pos) );
    Message=Message.substr(tmp_pos+1);
    };

//printf("Params >%s<\n",Params.c_str());
}; //while (Message.size>0)

// если уже зашли под таким ником - приделываем палочки к нику,
// а если и это не помогло - прибавляем к нику цифру
if (Action=="ERR_NICKNAMEINUSE"){
    NumTryConnect++;
    std::string NickName=GetParam("NickName");
    if (NumTryConnect==1) {
    NickName=NickName+"_";
    } else
    if (NumTryConnect==2) {
    NickName="_"+NickName;
    } else {
    NickName=NickName+IntToStr( NumTryConnect );
    };

    SetParam("NickName", NickName.c_str() );
    Send("NICK","server", NickName.c_str() );

}
else
// проверка на CTCP
if ( Params[1]=="PRIVMSG" ) {
std::string par1=Params[3];
printf("{%s}\n",par1.c_str());

if (par1.at(0)=='\001') {
    /// это ж у нас CTCP !
    par1=par1.substr(1); // отделяем признак CTCP в начале
    int tmp_pos=par1.find_first_of('\001',1);
    if (tmp_pos==-1) break;

    par1=par1.substr(0,tmp_pos); // отделяем признак CTCP в конце

    std::string CTCP_type=par1;
    tmp_pos=par1.find_first_of(' ',1);

    std::string par2=par1.substr(tmp_pos+1);
    if (tmp_pos!=-1) CTCP_type=par1.substr(0,tmp_pos); // если это например PING, отделяем всё остальное

    printf("{CTCP: %s}\n",CTCP_type.c_str());

    Params.pop_back();

    Params.push_back( CTCP_type );
    Params.push_back( par2 );

//    if (CTCP_type=="ACTION") {
//        printf("AC-Ti-i-i-iooonn!!!!\n");
//        Send("NOTICE","server",Nick+" :\001ACTION внимательно наблюдает \001");
//        automated=false;
//   }
//    else
    if (CTCP_type=="USERINFO") {
//        SendMessage(";","NOTICE "+Nick+" :\001USERINFO "+GetParam("USERINFO")+"\001");
          Send("NOTICE","server",ASN_Str(Nick+" :\001USERINFO "+GetParam("USERINFO")+"\001").c_str());
        automated=false;
        }
    else if (CTCP_type=="VERSION") {
//        SendMessage(";","NOTICE "+Nick+" :\001VERSION "+GetParam("VERSION")+"\001");
          Send("NOTICE","server",ASN_Str( Nick+" :\001VERSION "+GetParam("VERSION")+"\001" ).c_str() );
        automated=false;
        }
    else if (CTCP_type=="PING") {
    // хотя в документации написано, что ответ должен быть PONG !!!! :/
    // <marker> PONG <space> <arg> <marker>
        tmp_pos=par1.find_first_of(' ',1);
//        SendMessage(";","NOTICE "+Nick+" :\001PING "+par1.substr(tmp_pos+1,Message.length()-tmp_pos-1)+"\001");
           Send("NOTICE","server",ASN_Str(Nick+" :\001PING "+par1.substr(tmp_pos+1,Message.length()-tmp_pos-1)+"\001").c_str() );
        automated=false;
        }
    else if (CTCP_type=="TIME") {
        static char time_buffer[ 1024 ];
        time_t time_of_day=time(NULL);
        strftime( time_buffer, 80, "%d %H:%M:%S %Z %Y", localtime( &time_of_day ) );
//        SendMessage(";","NOTICE "+Nick+" :\001TIME "+std::string(time_buffer)+"\001");
            Send("NOTICE","server",ASN_Str(Nick+" :\001TIME "+std::string(time_buffer)+"\001").c_str());
        automated=false;
   }
    else if (CTCP_type=="DCC") {
    std::string DCC_type;
    tmp_pos=par1.find_first_of(' ',1);
    par1=par1.substr(tmp_pos+1); // отрезаем команду DCC
    tmp_pos=par1.find_first_of(' ',1);
    if (tmp_pos!=-1) DCC_type=par1.substr(0,tmp_pos);
    par1=par1.substr(tmp_pos+1);
    printf("DCC type: {%s}\n",DCC_type.c_str());

     if (DCC_type=="CHAT") {
     tmp_pos=par1.find_first_of(' ',1);
     std::string dcc_Protocol=par1.substr(0,tmp_pos);
     par1=par1.substr(tmp_pos+1);
     printf("chat protocol: {%s}\n",dcc_Protocol.c_str());
     if (dcc_Protocol=="chat") { // обычный dcc чат-протокол
        tmp_pos=par1.find_first_of(' ',1);
        std::string rawIP=par1.substr(0,tmp_pos);
//        printf( "Raw IP: %s\n",rawIP.c_str() );
        unsigned int t;
        sscanf(rawIP.c_str(),"%u",&t);
//        printf( "Start IP: %u\n", t);
        std::string inetIP = IntToIP ( t /*StrToInt(rawIP)*/ );

        par1=par1.substr(tmp_pos+1);
        tmp_pos=par1.find_first_of(' ',1);
        std::string Port=par1.substr(0,tmp_pos);

        printf("{%s}:{%d}\n", inetIP.c_str() , StrToInt(Port) );

//      INetProtocolHandler *tmp=NETTER->OpenClientListener( std::string(GetParam("ServerName"))+"_"+Nick+"_DCC","IRC_DCC_CHAT",inetIP,StrToInt(Port),"","");

        INetProtocolHandler *tmp = new NH_IRC_DCC_CHAT( Engine );
//
        NETTER->AddCustomListener( tmp, inetIP.c_str() , StrToInt(Port) );
        tmp->SetPtrParam("Handler",CustomHandler);
        tmp->SetParam("UserName",Nick.c_str());
//        printf("dcc: %s", std::string( std::string(GetParam("ServerName"))+"_"+Nick+"_DCC" ).c_str() );
//        SetPtrParam(");
        };
    }; //    if (DCC_type=="CHAT")

    if (DCC_type=="SEND") {

       std::string SendFile;
//       printf("par1=%s\n",par1.c_str() );
       if (par1[0]=='"') {
              tmp_pos=par1.find_first_of('"',1);
              SendFile=par1.substr(1,tmp_pos-1);
              }
       else {
              tmp_pos=par1.find_first_of(' ',1);
              SendFile=par1.substr(0,tmp_pos);
            };

       printf("SendFile: %s\n",SendFile.c_str());

       par1=par1.substr(tmp_pos+1);
       tmp_pos=par1.find_first_of(' ',1);
       std::string rawIP=par1.substr(0,tmp_pos);

       printf("rawIP: %s\n",rawIP.c_str());

       unsigned int t;
       sscanf(rawIP.c_str(),"%u",&t);
       std::string inetIP = IntToIP ( t );

       par1=par1.substr(tmp_pos+1);
       tmp_pos=par1.find_first_of(' ',1);
       std::string Port=par1.substr(0,tmp_pos);

       par1=par1.substr(tmp_pos+1);
       tmp_pos=par1.find_first_of(' ',1);
       std::string FileSize=par1.substr(0,tmp_pos);

       printf("%s try send file {%s} with size %s from %s port: %s\n",
               Nick.c_str(), SendFile.c_str(), FileSize.c_str(), inetIP.c_str() , Port.c_str() );

         INetProtocolHandler *tmp= new  NH_IRC_DCC_GETFILE( Engine );
         NETTER->AddCustomListener( tmp, inetIP.c_str() , StrToInt(Port) );

         tmp->SetPtrParam("Handler",CustomHandler);
         tmp->SetParam("UserName",Nick.c_str());
         tmp->SetParam("FileName",SendFile.c_str());
         tmp->SetParam("FileSize",FileSize.c_str());
         tmp->SetParam("Port",Port.c_str());
         tmp->SetParam("LoadSize","0");

    }; // if (DCC_type=="SEND")

//        std::vector<std::string>::iterator _it=Params.begin();
//        while(_it!=Params.end()){
//        printf("Param:{%s}\n",(*_it).c_str());
//        _it++;
//        };


        automated=false;
   };

   };

};

if (automated)
if (CustomHandler) {
//SetParam("Nick",Nick.c_str());
//SetParam("Action",Action.c_str());

CALLBACK_PROTOCOL_HANDLER myCustomHandler = (CALLBACK_PROTOCOL_HANDLER)CustomHandler;
myCustomHandler(this, &Params);
}

Params.clear();

}; // while (pos!=-1)


cut_buffer=AllMessages.substr(0,AllMessages.length()-1);
return handler_id;
};
Пример #2
0
int IMask3x3::getValue(TypeConfig *type, int x, int y)
{
   if (type->getName()!="Mask3x3") return 0;
   return type->getInt("d"+IntToStr(y)+"_"+IntToStr(x));
}
Пример #3
0
void __fastcall TFrmRMove::FormShow(TObject *Sender)
{
	TenkeyGridInitial();
	if(FileExists(ExtractFilePath(Application->ExeName)+ "\\Ini\\TenkeyNameInfo.ini") == false)
    {
    }
    else
    {
        nSearchResultCnt = 0;
        TIniFile * SearchTenkeyIni = new TIniFile(ExtractFilePath(Application->ExeName)+ "\\Ini\\TenkeyNameInfo.ini");
        for(int nPIndex = 0; nPIndex <= _MAX_PARENT_TENKEYCOUNT_; nPIndex++)
        {
            for(int nCIndex = 0; nCIndex <= _MAX_CHILD_TENKEYCOUNT_; nCIndex++)
            {
                StrTenkeyNameList[nPIndex][nCIndex] = SearchTenkeyIni->ReadString("ChildTenkeyName"+IntToStr(nPIndex),"ChildButtonName"+IntToStr(nCIndex),"Tenkey"+IntToStr(nCIndex));
                StrTenkeyNumberList[nPIndex][nCIndex] = SearchTenkeyIni->ReadString("ChildTenkeyName"+IntToStr(nPIndex),"ChildTenkeyNumber"+IntToStr(nCIndex),0);

            }
        }
    }
}
Пример #4
0
LRESULT CPercentEdit::OnSetFocus(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	 int quality = _wtoi(GuiTools::GetWindowText(m_hWnd));
	 SetWindowText( IntToStr(quality));
	 return 0;
}
Пример #5
0
void __fastcall TfrmView::FormPaint(TObject *Sender)
{
	UINT32 elasped = this->render();
	StatusBar1->Panels->operator [](3)->Text = IntToStr((int)elasped) + " msec";
}
Пример #6
0
void MapEditor2D::WriteMaterialData (BaseGameObject *Obj, FILE *F) {
	fputs ("\n", F);
	fputs (string("    Material: "+IntToStr(Obj->Material != 0)+";\n").c_str(), F);

	if (Obj->Material == 0)
		return;

	// Shader
	BaseShader *Shader = Obj->Material->Shader;
	string locs;
	string ws = "              ";

	fputs (string("    Shader : \""+fs::extractFileName(Shader->FileName)+"\";\n").c_str(), F);

	for (int k = 0; k < Shader->Locations->Hashes.size(); k++) {
		string comma = k == 0 ? "" : ", ";
		locs += comma+"\""+Shader->Locations->Hashes[k]+"\"";

		if ((k+1) % 2 == 0 && k != Shader->Locations->Hashes.size()-1)
			locs += "\n"+ws;
	}

	fputs (string("    Locations : "+locs+";\n").c_str(), F);

	// Material Parameters
	BaseUniforms::UniformsMap *Uniforms = &(Obj->Material->Uniforms->Uniforms);
	
	string uniforms = "";
	ws = "             ";
	BaseUniforms::UniformsMap::iterator ite = Uniforms->end();
	ite--;
	
	for (BaseUniforms::UniformsMap::iterator it = Uniforms->begin(); it != Uniforms->end(); it++) {
		Uniform *U = &it->second;
		string loc = it->first;
		
		string comma = it == Uniforms->begin() ? "" : ", ";

		switch (U->Type) {
			case uMat4f :
				if (loc == "MVP")
					uniforms += comma+"\"MVP\", Matrix, MVP_Matrix";

				break;

			case uFloat :
				uniforms += comma+"\""+loc+"\", "+"Float, "+FloatToStr(*(float*) U->Data);
				break;

			case uInt :
				uniforms += comma+"\""+loc+"\", "+"Int, "+IntToStr(*(int*) U->Data);
				break;

			case uBool :
				uniforms += comma+"\""+loc+"\", "+"Bool, "+IntToStr(*(bool*) U->Data);
				break;

			case uVec2f :
				uniforms += comma+"\""+loc+"\", "+"Vec2f, "+FloatToStr((*(glm::vec2*) U->Data).x)+", "
													+FloatToStr((*(glm::vec2*) U->Data).y);
				break;

			case uVec2i :
				uniforms += comma+"\""+loc+"\", "+"Vec2i, "+IntToStr((*(glm::vec2*) U->Data).x)+", "
													+IntToStr((*(glm::vec2*) U->Data).y);
				break;

			case uVec3f :
				uniforms += comma+"\""+loc+"\", "+"Vec3f, "+FloatToStr((*(glm::vec3*) U->Data).x)+", "
													+FloatToStr((*(glm::vec3*) U->Data).y)+", "
													+FloatToStr((*(glm::vec3*) U->Data).z);
				break;

			case uVec3i :
				uniforms += comma+"\""+loc+"\", "+"Vec3i, "+IntToStr((*(glm::vec3*) U->Data).x)+", "
													+IntToStr((*(glm::vec3*) U->Data).y)+", "
													+IntToStr((*(glm::vec3*) U->Data).z);
				break;

			case uVec4f :
				uniforms += comma+"\""+loc+"\", "+"Vec4f, "+FloatToStr((*(glm::vec4*) U->Data).x)+", "
													+FloatToStr((*(glm::vec4*) U->Data).y)+", "
													+FloatToStr((*(glm::vec4*) U->Data).z)+", "
													+FloatToStr((*(glm::vec4*) U->Data).w);
				break;

			case uVec4i :
				uniforms += comma+"\""+loc+"\", "+"Vec4i, "+IntToStr((*(glm::vec4*) U->Data).x)+", "
													+IntToStr((*(glm::vec4*) U->Data).y)+", "
													+IntToStr((*(glm::vec4*) U->Data).z)+", "
													+IntToStr((*(glm::vec4*) U->Data).w);
				break;

			case uTex2D :
				Texture2D *Tex = (Texture2D*) U->Data;

				string WrapS  = Tex->WrapS == GL_CLAMP_TO_EDGE ? "0" : "1";
				string WrapT  = Tex->WrapT == GL_CLAMP_TO_EDGE ? "0" : "1";
				string Filter = Tex->WrapT == GL_NEAREST       ? "0" : "1";

				uniforms += comma+"\""+loc+"\""+", "+"Tex2D, \""+Tex->FileName+"\", "+WrapS+", "+WrapT+", "+Filter;
				break;
		}

		if (it != ite)
			uniforms += "\n"+ws;
	}

	fputs (string("    Uniforms : "+uniforms+";\n").c_str(), F);
}
Пример #7
0
void main() {
     int citajPrvBroj = 1;
     int broj1 = 0;
     int broj2 = 0;
     int suma;

     ANSEL = 0;
     ANSELH = 0;
     
     Lcd_Init();
     Lcd_Cmd(_LCD_CLEAR);
     do {
        char kp = 0;
        do {
           kp = Keypad_Key_Click();
        } while (kp == 0);
        
        switch (kp)
        {
          case 1: kp = '1'; break; // 1
          case 2: kp = '2'; break; // 2
          case 3: kp = '3'; break; // 3
          case 4: kp = '+'; break; // +
          case 5: kp = '4'; break; // 4
          case 6: kp = '5'; break; // 5
          case 7: kp = '6'; break; // 6
          case 8: kp = 'C'; break; // C
          case 9: kp = '7'; break; // 7
          case 10: kp = '8'; break; // 8
          case 11: kp = '9'; break; // 9
          case 12: kp = '='; break; // =
          case 13: kp = 'B'; break; // brisi
          case 14: kp = '0'; break; // 0
          case 15: kp = 'K'; break; // kraj
          case 16: kp = 'P'; break; //prikazi
        }
        
        if (kp >= '0' && kp <= '9') {
           if (citajPrvBroj) {
              broj1 = kp - '0';
           } else {
             broj2 = kp - '0';
           }
        } else if (kp == '+') {
          citajPrvBroj = 0;
        } else if (kp == '=') {
          suma = broj1 + broj2;
        } else if (kp == 'B') {
          if (citajPrvBroj) {
             broj1 = 0;
           } else {
             broj2 = 0;
           }
        } else if (kp == 'C') {
          broj1 = broj2 = suma = 0;
          citajPrvBroj = 1;
          Lcd_Cmd(_LCD_CLEAR);
        } else if (kp == 'P') {
          IntToStr(suma, text);
          Lcd_Out_CP(text);
        } else if (kp == 'K') {
          break;
        }
        Lcd_Chr_CP(kp);
     } while (1);
}
Пример #8
0
//---------------------------------------------------------------------------
void    __fastcall  TFormReportUchebKartStud::CreateWordDocument(void)
{
    AnsiString NumZ, SecondName, FirstName, ThirdName, Adres, NumPricas, InDate,
        spec, VipQualifWork, OutDate, Qualific, nGak;
    AnsiString perevodInfo[5];

    GetOchenkiStudenta();
    UpdateView();
    GetInfoStudent(NumZ, SecondName, FirstName, ThirdName, Adres, NumPricas, InDate,
        spec, VipQualifWork, OutDate, Qualific, nGak, perevodInfo);

    ExcelMacros macros;
    macros.BeginMacros();

    // заполянем верхнюю часть катрочки
    macros.Select("L2");
    macros.Formula("     №   " + NumZ);
    macros.Select("A6");
    macros.Formula("1.   " + SecondName + " " + FirstName + " " + ThirdName);
    macros.Select("A8");
    macros.FilterText(Adres);
    macros.Formula("2. Адрес:   " + Adres);
    macros.Select("A10");
    macros.Formula("3. Зачислен в ВУЗ приказом №   " + NumPricas);
    macros.Select("A11");
    macros.Formula("от   " + GetDateAsString(InDate));
    macros.Select("A16");
    macros.Formula("по специальности   " + spec);
    macros.Select("H21");
    macros.FilterText(VipQualifWork);
    macros.Formula("  " + VipQualifWork);
    macros.Select("H27");
    macros.Formula("присвоена квалификация   " + Qualific);
    if (OutDate.Length() > 0)
    {
        macros.Select("H26");
        macros.Formula("от " + GetDateAsString(OutDate, true));
        macros.Select("H23");
        macros.Formula("и защитил " + GetDateAsString(OutDate, true));
    }
    if (nGak.Length() > 0)
    {
        macros.Select("H25");
        macros.Formula(" комиссии  (протокол №    " + nGak);
    }

    // заполняем отметки о переводах
    AnsiString perevodPos[5] = {"A62", "H62", "A96", "H96", "A130"};
    for (int i = 0; i < 5; ++i)
       if (perevodInfo[i] != "")
       {
         macros.Select(perevodPos[i]);
         macros.Formula(perevodInfo[i]);
       }


    // зполняем оценками таблицу

    for (int i = 0; i < mas_ochenka.size(); i++)
    {
        Progress* pr =  mas_ochenka[i];
        if (!(pr->idclass == tdCommon || pr->idclass == tdCourseWork || \
            pr->idclass == tdCourseProject || pr->idclass == tdPraktica))
                continue;

        if (pr->numplansemestr > 12 || pr->numplansemestr < 1)
        {
            AnsiString er = "Предмет \"" + pr->title + "\" записан на " + \
                pr->numplansemestr + " - это неправильно \n" \
                "Отчет не будет выведен";
            Application->MessageBox(er.c_str(), "Ошибка.", MB_OK | MB_ICONEXCLAMATION);
            return;
        }
        if (pr->numplansemestr == 12 )
            pr->numplansemestr = 12;
        AnsiString range = "";
        if (pr->count_line != 0)
        {
            for (int j = 1; j <= 5; j++)
            {
                range = AnsiString(pos_semestr[pr->numplansemestr - 1].col[j]) +
                    IntToStr(pos_semestr[pr->numplansemestr - 1].row);
                range += ":" + AnsiString(pos_semestr[pr->numplansemestr - 1].col[j]) +
                    IntToStr(pos_semestr[pr->numplansemestr - 1].row + pr->count_line);
                macros.Select(range);
                macros.MergeCell();
            }
            pos_semestr[pr->numplansemestr - 1].row += pr->count_line;
         }

         range = AnsiString(pos_semestr[pr->numplansemestr - 1].col[1]) +
             IntToStr(pos_semestr[pr->numplansemestr - 1].row);
         macros.Select(range);
         macros.Formula(pr->title);

         range = AnsiString(pos_semestr[pr->numplansemestr - 1].col[2]) +
             IntToStr(pos_semestr[pr->numplansemestr - 1].row);
         macros.Select(range);
         //macros.Formula((pr->count_hours == "0")?AnsiString(""):pr->count_hours);
         if (pr->idclass == tdCommon)
            if (pr->numplansemestr != 12 && pr->hours[pr->numplansemestr - 1] != "0  ")
                macros.Formula(pr->hours[pr->numplansemestr - 1]);
            else
                macros.Formula((pr->count_hours == "0")?AnsiString(""):pr->count_hours);



         AnsiString pos = "";
         if (pr->estimation < 4)    // экзамен
            pos = AnsiString(pos_semestr[pr->numplansemestr - 1].col[3]);
         else                      // зачет
            pos = AnsiString(pos_semestr[pr->numplansemestr - 1].col[4]);

         range = pos + IntToStr(pos_semestr[pr->numplansemestr - 1].row);
         macros.Select(range);
         macros.Formula(tip_ocenok[pr->estimation]);

         pos_semestr[pr->numplansemestr - 1].row ++;
    }
    // заполнение по междисц испыт
    int pos = 16;  // начиная с 16 строки в екселе
    for (int i = 0; i < mas_ochenka.size(); i++)
    {
        Progress* pr =  mas_ochenka[i];
        if (pr->idclass != tdItogAttest)
            continue;
        macros.Select("J" + IntToStr(pos));
        macros.Formula(pr->dis_shorttitle);
        macros.Select("M" + IntToStr(pos));
        macros.Formula(tip_ocenok[pr->estimation]);
        pos++;
    }
    macros.Select("A4");

    macros.EndMacros();

    // получаем текущее положение
    char path_buf[_MAX_PATH];
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];

    GetModuleFileName(NULL,path_buf,sizeof(path_buf)-1);
    _splitpath(path_buf,drive,dir,0,0);
    _makepath(path_buf,drive,dir,0,0);

    AnsiString path_host_template = AnsiString(drive) + AnsiString(dir) + "template.xlt";
    if (FileExists(path_host_template))
        macros.RunMacros(path_host_template);
    else
       macros.RunMacros("c:\\template.xlt");

}
//---------------------------------------------------------------------------
void TFormScoreTests::ReadFile(const String& filename)
{
  const int row = StringGridStudents->RowCount - 1;
  const std::string file_stripped = RemoveExtension(RemovePath(filename.c_str()));
  ++StringGridStudents->RowCount;
  StringGridStudents->Cells[0][row] = row;
  StringGridStudents->Cells[1][row] = file_stripped.c_str();
  StringGridStudents->Cells[2][row] = "";
  StringGridStudents->Cells[3][row] = "";

  const int key = EditKey->Text.ToInt();
  const int penalty = EditPenalty->Text.ToInt();
  const Encranger e(key);


  //Load file
  std::vector<std::string> v = FileToVector(filename.c_str());

  const int sz = v.size();
  for (int i=0; i!=sz; ++i)
  {
    //Deencrypt file
    v[i] = e.Deencrypt(v[i]);
    //Remove asterisks
    v[i] = ReplaceAll(v[i],"*","");
  }

  const std::string username = FindUserName(v);

  if (username.empty())
  {
    StringGridStudents->Cells[3][row] = "Username not found";
    StringGridStudents->Cells[2][row] = "1.0 or 1.1";
    return;
  }

  if (username != file_stripped)
  {
    StringGridStudents->Cells[3][row] = "Filename differs from username";
    StringGridStudents->Cells[2][row] = "1.1";
    return;
  }


  int n_correct = 0;
  const int n_questions = CountQuestions(v);
  LabelNquestions->Caption = "#questions: " + IntToStr(n_questions);

  for (int i=0; i!=sz; ++i)
  {
    if (v[i].empty()) continue;

    const std::vector<std::string> line_markup = SeperateString(v[i],",");

    //Replace {comma} by a comma for each std::string in v
    const std::vector<std::string> line = ReplaceAll(line_markup,"{comma}",",");

    OutputDebugString(line.size() >= 1 ? line[0].c_str() : "line[0] = {}");
    OutputDebugString(line.size() >= 2 ? line[1].c_str() : "line[1] = {}");
    OutputDebugString(line.size() >= 3 ? line[2].c_str() : "line[2] = {}");
    OutputDebugString(line.size() >= 4 ? line[3].c_str() : "line[3] = {}");

    //assert(line.size() == 2); WORKAROUND



    if (line[0]=="NAME") continue;
    const bool is_correct = (line[line.size()-1]=="Y"); //WORKAROUND
    assert(line[line.size()-1]=="Y" || line[line.size()-1]=="N"); //WORKAROUND 
    if (is_correct) ++n_correct;
    ScoreQuestion(line[0],is_correct);
  }

  //Calculate student's score
  assert(n_questions - penalty > 0);
  const double fraction
      = static_cast<double>(n_correct - penalty)
      / static_cast<double>(n_questions - penalty);
  const double init_score = 1.0 + (9.0 * fraction);
  const double score_above_one = (init_score < 1.0 ? 1.0 : init_score);
  const double score_below_ten = (score_above_one > 10.0 ? 10.0 : score_above_one);
  const double score = score_below_ten;

  StringGridStudents->Cells[2][row] = score;
}
Пример #10
0
void __fastcall TFrmMain::btColSaveClick(TObject *Sender)
{
if(OpenOk==false) return;

        int iFileHandle; //文件句柄
        char Txtbuf[255];
        int iVal;
        char buf[4];
        float fVal;
        FILE *stream;
        long curpos, length;
	DWORD dwRows, dwCols, dwRowLen, dwTextLen;

        DWORD dwTextStartPos;
	char* pTextPtr ;

    iFileHandle = FileOpen(CurrentOpenFile, fmOpenRead|fmOpenWrite);//打开文件

   //if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
   //    == NULL)
   //{
   //   ShowMessage("打开文件出错");
   //   return;
   //}

   //curpos = ftell(stream);
   //fseek(stream, 0L, SEEK_END);
   //length = ftell(stream);


   switch (thOpen->ColType[sgEdit->Col])
   {
     case 0: //整型值
       for(int i=0;i<sgEdit->RowCount-1;i++){
           //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
           //iVal=StrToInt(sgEdit->Cells[sgEdit->Col][i+1]);
           //fwrite(&iVal, 4, 1, stream);
           iVal=StrToInt(sgEdit->Cells[sgEdit->Col][i+1]);
           memcpy(buf, &iVal, 4);
           FileSeek(iFileHandle,0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
           FileWrite(iFileHandle,buf,4);
       }
     break;
     case 1: //浮点值
       for(int i=0;i<sgEdit->RowCount-1;i++){
           //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
           //fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][i+1]);
           //fwrite(&fVal, 4, 1, stream);
           fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][i+1]);
           memcpy(buf, &fVal, 4);
           FileSeek(iFileHandle,0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
           FileWrite(iFileHandle,buf,4);
       }
     break;
     case 2: //文本   不存
     break;
   }
   //fclose(stream);

   FileClose(iFileHandle);
   ShowMessage("The "+IntToStr(sgEdit->Col)+"Col Write Ok!");
}
Пример #11
0
void main() {
char rec;
int x,y;
int f[5];
char send[7];

uart1_init(9600);

trisc=0b10000000;
DI=1;
CLK=1;
uart1_write_text("hello");
while(1)
{
  if(uart1_data_ready())
  {
    rec=uart1_read();
    if(rec=='1')
    audio(1);
    if(rec=='2')
    audio(2);
    if(rec=='3')
    audio(3);
    if(rec=='4')
    audio(4);
    if(rec=='5')
    audio(5);
  }

f[0]=adc_read(12);
f[1]=adc_read(10);
f[2]=adc_read(8);
f[3]=adc_read(9);
f[4]=adc_read(11);
x=adc_read(0);
y=adc_read(1);
inttostr(f[0],send);
uart1_write_text("f0=");
uart1_write_text(send);
uart1_write(13);
IntToStr(f[1],send);
uart1_write_text("f1=");
uart1_write_text(send);
uart1_write(13);
IntToStr(f[2],send);
uart1_write_text("f2=");
uart1_write_text(send);
uart1_write(13);
IntToStr(f[3],send);
uart1_write_text("f3=");
uart1_write_text(send);
uart1_write(13);
IntToStr(f[4],send);
uart1_write_text("f4=");
uart1_write_text(send);
uart1_write(13);
IntToStr(x,send);
uart1_write_text("x=");
uart1_write_text(send);
uart1_write(13);
IntToStr(y,send);
uart1_write_text("y=");
uart1_write_text(send);
uart1_write(13);
delay_ms(1000);


if(f[0]<170&&f[1]<180&&f[2]<180&&f[3]>250)
{
 audio(2);
 delay_ms(5000);
}

else if(f[0]<170&&f[1]<180&&f[2]<180&&f[3]<170&&rec!='c')
{
 audio(1);
 delay_ms(5000);
}


else if(f[0]>230&&f[1]>230&&f[2]>230&&f[3]>230&&x<280)
{
  audio(3);
  delay_ms(5000);
}



else if(f[0]<170&&f[1]<180&&f[2]<180&&f[3]<170&&rec=='c')
{
 audio(4);
 rec=0;
 delay_ms(5000);
}

else if(f[0]>230&&f[1]>230&&f[2]>230&&f[3]>230&&x>350&&rec=='b')
{
 audio(5);
 rec=0;
 delay_ms(5000);
}


}

}
Пример #12
0
//---------------------------------------------------------------------------
void __fastcall TFrmMain::OpenFileCol(AnsiString FileName,int ColIndex,int ColType)
{
        int iFileHandle; //文件句柄
        char Txtbuf[255];
        int iVal;
        float fVal;
        FILE *stream;
        long curpos, length;
	DWORD dwRows, dwCols, dwRowLen, dwTextLen;

        DWORD dwTextStartPos;
	char* pTextPtr ;


   if ((stream = fopen(FileName.c_str(), "r+"))
       == NULL)
   {
      ShowMessage("Open File Error");
      return;
   }

   curpos = ftell(stream);
   fseek(stream, 0L, SEEK_END);
   length = ftell(stream);


   switch (ColType)
   {
     case 0: //整型值   Int
       for(int i=0;i<sgEdit->RowCount-1;i++){
           fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
           fread(&iVal, 4, 1, stream);
           sgEdit->Cells[ColIndex][i+1]=IntToStr(iVal);
       }
     break;
     case 1: //浮点值    Float
       for(int i=0;i<sgEdit->RowCount-1;i++){
           fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
           fread(&fVal, 4, 1, stream);
           sgEdit->Cells[ColIndex][i+1]=FloatToStr(fVal);
       }
     break;
     case 2: //文本      Text
        fseek(stream,0x4,0);
        fread(&iVal, 4, 1, stream);
        dwRows= iVal;
        fread(&iVal, 4, 1, stream);
        dwCols = iVal;
        fread(&iVal, 4, 1, stream);
        dwRowLen = iVal;
        fread(&iVal, 4, 1, stream);
        dwTextLen = iVal;

        dwTextStartPos = dwRows*dwRowLen+20;
       for(int i=0;i<sgEdit->RowCount-1;i++){
           fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
           fread(&iVal, 4, 1, stream);
           sgEdit->Cells[ColIndex][i+1]=IntToStr(iVal);
           if(dwTextStartPos + iVal < length){
                 fseek(stream,dwTextStartPos + iVal,0);
                 fread(Txtbuf, 1, 255, stream);
                 //pTextPtr = pBuff + dwTextStartPos + lTemp;
                 sgEdit->Cells[ColIndex][i+1]=Txtbuf;
           }else{
                 sgEdit->Cells[ColIndex][i+1]="This Col Not Text!";
           }
       }
     break;
   }
   fclose(stream);
}
Пример #13
0
//===========================================================================
void Tform_Main::ReadDataFromRegistry()
{
    try {
        try {
           Reg->RootKey = HKEY_LOCAL_MACHINE;
           Reg->OpenKey("Software\\Home\\" + ShortAppName_WA_ext, true);
                MaxTime           = Reg->ReadFloat  ("MaxTime" );
                TimeElapsed       = Reg->ReadFloat  ("TimeElapsed" );
                LastGameDate      = Reg->ReadInteger("LastGameDate");
                SoftsCount        = Reg->ReadInteger("SoftsCount");
                isShowTimer       = Reg->ReadBool   ("isShowTimer");
                isChildMomEnabled = Reg->ReadBool   ("isChildMomEnabled");
                for ( int i = 0; i < SoftsCount; i++ ) Softs[i] = Reg->ReadString("Soft" + IntToStr(i));
           Reg->CloseKey();
            // **********************
            int CurrentDate = Date();
            if ( CurrentDate != LastGameDate )
            {
                TimeElapsed = MaxTime * 1000.0;
                LastGameDate = CurrentDate;

                SaveDataToRegistry();
            }
            // **********************
        } catch ( ... )
        {
            TimeElapsed = MaxTime * 1000.0;
            Reg->CloseKey();
            SaveDataToRegistry();
        }
    } __finally {
         Reg->CloseKey();
    }
}
Пример #14
0
int
moGLManager::CreateContext( int p_width, int p_height ) {

    MODebug2->Message( "moGLManager::CreateContext > p_width: " + IntToStr(p_width) + " p_height: " + IntToStr(p_height) );

    #ifdef MO_WIN

    GLuint PixelFormat;
    PIXELFORMATDESCRIPTOR pfd;
    hDC = GetDC(NULL);


    memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));

    pfd.nSize = sizeof(pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 32;
    pfd.cDepthBits = 16;
    pfd.cStencilBits = 8;
    pfd.iLayerType = PFD_MAIN_PLANE;

    PixelFormat = ChoosePixelFormat(hDC, &pfd);
    SetPixelFormat(hDC, PixelFormat, &pfd);

    //  HGLRC
    this->m_Context = (moGLContext) wglCreateContext(hDC);
    wglMakeCurrent(hDC, (HGLRC) this->m_Context );

    #endif

    #ifdef MO_LINUXX

    /*
    If direct is True,
            then a direct-rendering context is created if the
            implementation supports direct rendering, if the connection is to an X
            server that is local, and if a direct-rendering context is available. (An implementation may return an indirect context when share_list is True.)
            If share_list is False,
            then a rendering context that renders through the X server is always created.
            Direct rendering provides a performance advantage in some implementations.
            However, direct-rendering contexts cannot be shared outside a single process,
            and they may be unable to render to GLX pixmaps.
    */

    int m_glxVersion = 0;
    int glxMajorVer, glxMinorVer;
    Display *XServerDisplay=NULL;
    GdkDisplay *XGdkDisplay=NULL;
    GLXFBConfig *fbc = NULL;
    GLXPbuffer OffScreenBuffer = 0;
    int nscreens = 0;

    //XServerDisplay = GDK_DISPLAY();
    //XServerDisplay = gdk_display_get_default();
    MODebug2->Message( "moGLManager::CreateContext > getting X server display" );
    //XServerDisplay = gdk_x11_get_default_xdisplay();
    if (m_DisplayServer==NULL) {
      XServerDisplay = XOpenDisplay(NULL);
      m_DisplayServer = (void*)XServerDisplay;
    } else {
      XServerDisplay = (Display *)m_DisplayServer;
      MODebug2->Message("moGLManager::CreateContext > display server connection already opened.");
    }
    //XServerDisplay = GDK_DISPLAY();
    //  gdk_display_get_screen ()
    //  gdk_display_get_n_screens ()

    if (XServerDisplay) {

        MODebug2->Message( "moGLManager::CreateContext > X server display OK." );

        XGdkDisplay = gdk_x11_lookup_xdisplay( XServerDisplay );
        if (!XGdkDisplay) XGdkDisplay = gdk_display_get_default ();

        if (XGdkDisplay) {
          MODebug2->Error("moGLManager::CreateContext > X Gdk Display OK! : " + IntToStr((MOulong)XGdkDisplay));
          nscreens = gdk_display_get_n_screens(XGdkDisplay);
        } else MODebug2->Error("moGLManager::CreateContext > X Gdk Display not found : " + IntToStr((MOulong)XGdkDisplay));

        MODebug2->Message("moGLManager::CreateContext > X Server Display found: " + IntToStr((MOulong)XServerDisplay) + " screens:" + IntToStr(nscreens) );

    } else {
        MODebug2->Error("moGLManager::CreateContext > X Server Display not found : " + IntToStr((MOulong)XServerDisplay));
        return false;
    }

    bool ok = glXQueryVersion( XServerDisplay, &glxMajorVer, &glxMinorVer);

    if (!ok)
        m_glxVersion = 10; // 1.0 by default
    else
        m_glxVersion = glxMajorVer*10 + glxMinorVer;

    MODebug2->Message("moGLManager::CreateContext > GLX Version (10=1.0,13=1.3,...): " + IntToStr(m_glxVersion) + "=" + FloatToStr( (double)(m_glxVersion)/(double) 10.0)  );

    if ( m_glxVersion >= 13)
    {
        // GLX >= 1.3
        //GLXFBConfig *fbc = gc->m_fbc;

        int nelements = 0;
        int attrib_list[] =
                        {
                        GLX_RENDER_TYPE, GLX_RGBA_BIT,
                        GLX_DOUBLEBUFFER, 1,
                        GLX_RED_SIZE, 8,
                        GLX_GREEN_SIZE, 8,
                        GLX_BLUE_SIZE, 8,
                        GLX_ALPHA_SIZE, 8,
                        GLX_DEPTH_SIZE, 16,
                        GLX_STENCIL_SIZE, 8,
                        0
                        };


        fbc = glXChooseFBConfig( XServerDisplay,
                            DefaultScreen(XServerDisplay)/*screen number*/,
                            attrib_list,
                            &nelements );


        if (fbc) {
            MODebug2->Message( "moGLManager::CreateContext > FBConfig OK!");
        } else {
            MODebug2->Error( "moGLManager::CreateContext > No FBConfig");
            return false;
        }

        this->m_Context = (moGLContext) glXCreateNewContext( XServerDisplay /*XServer Display*/,
                                        fbc[0] /*attribute list FB Config match*/,
                                        GLX_RGBA_TYPE /*type of rendering*/,
                                        NULL /*shared context  for display lists*/,
                                        GL_TRUE /*direct rendering to graphics system*/);
    }
    else
    {
        // GLX <= 1.2
        int attrib_list_vi[] =
                        {
                        GLX_RGBA,
                        GLX_DOUBLEBUFFER,
                        GLX_RED_SIZE, 8,
                        GLX_GREEN_SIZE, 8,
                        GLX_BLUE_SIZE, 8,
                        GLX_ALPHA_SIZE, 8,
                        GLX_DEPTH_SIZE, 16,
                        GLX_STENCIL_SIZE, 8,
                        0
                        };

        XVisualInfo *vi = glXChooseVisual( XServerDisplay,
                                           DefaultScreen(XServerDisplay), /*screen number*/
                                           attrib_list_vi );

        this->m_Context = (moGLContext) glXCreateContext( XServerDisplay,
                                        vi,
                                        NULL,
                                        GL_TRUE );
    }

    if (this->m_Context) {

        MODebug2->Message("moGLManager::CreateContext > creating offscreen buffer.");

        if ( m_glxVersion >= 13 ) {
            // GLX >= 1.3
            int pbuffer_attrib[] = {
            GLX_PBUFFER_WIDTH, p_width,
            GLX_PBUFFER_HEIGHT, p_height,
            GLX_LARGEST_PBUFFER, 0,
            GLX_PRESERVED_CONTENTS, 0,
            0 };
            OffScreenBuffer = glXCreatePbuffer( XServerDisplay, fbc[0], pbuffer_attrib );

            this->m_DisplayScreen = (void*) OffScreenBuffer;

            if (OffScreenBuffer) {
              MODebug2->Message("moGLManager::CreateContext > Offscreen buffer OK! GLPXBuffer: " + IntToStr( (MOulong) OffScreenBuffer )  );
            } else {
              MODebug2->Error("moGLManager::CreateContext > Offscreen buffer BAD... : " + IntToStr( (MOulong) OffScreenBuffer )  );
              return false;
            }
            if ( glXMakeContextCurrent( XServerDisplay, OffScreenBuffer, OffScreenBuffer, (GLXContext) this->m_Context ) ) {
              MODebug2->Message("moGLManager::CreateContext > Making Context current OK!");
            }
        } else {
            // GLX <= 1.2
            //glXMakeCurrent( XServerDisplay, GDK_WINDOW_XWINDOW(window), m_glContext );
        }

    }

    #endif

    #ifdef MO_MAC
        //CGL
        CGLCreateContext


        //COCOA
        //NSOpenGLView

        //CARBON
        //aglCreateContext

    #endif



    return (this->m_Context == NULL);
}
Пример #15
0
void __fastcall TForm1::NMFTP2Connect(TObject *Sender)
{
Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:连接FTP成功。");
BitBtn3->Enabled=false;
BitBtn4->Enabled=true;


Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:开始生成接驳文件。");

AnsiString DateChoose = "dt>'"+Date().DateString()+" 00:00:00' and dt<'"+Date().DateString()+" 23:59:59'";
// ShowMessage(DateChoose);
AnsiString sqlstr = "select * from TicketPay where 1=1 and "+DateChoose ;
 //ADOConnection1->Connected = true;
 ADOQuery1->Close();
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add(sqlstr);
 ADOQuery1->Open();
 //ADOQuery1->Active =true;
 //Edit1->Text = IntToStr(ADOQuery1->RecordCount);
 //Memo1->Clear();
 if(ADOQuery1->RecordCount==0)
 {
 Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:本日未结算,终止执行。");
 NMFTP2->Disconnect();
 return;
 }


 AnsiString InsertString;
 Form2->Memo1->Lines->Clear();

 AnsiString  date1,date2,formati,pay_value;
 int i=0,p=0;

for(ADOQuery1->First();!ADOQuery1->Eof;ADOQuery1->Next())
 {
 //ShowMessage(ADOQuery1->FieldByName("dt")->AsString);
 //InsertString=ADOQuery1->FieldValues['dt'];
 InsertString=ADOQuery1->FieldByName("dt")->AsString;
 pay_value=ADOQuery1->FieldByName("pay_value")->AsString;
 //ShowMessage(InsertString);
 date1 = FormatDateTime("yyyy",InsertString)+"/"+FormatDateTime("mm",InsertString)+"/"+FormatDateTime("dd",InsertString);
 date2 = FormatDateTime("hhmm",InsertString);
 //rmati=Format("%010d",ARRAYOFCONST(i));
i++;
 //ShowMessage(10-IntToStr(i).Length());
int p=10-IntToStr(i).Length();
formati=IntToStr(i);
for(p;p>0;p=p-1)
{
     formati="0"+formati;
     //ShowMessage(formati);
}



 Form2->Memo1->Lines->Add(Edit2->Text+"\t"+Edit3->Text+"\t"+date1+"\t"+date2+"\t"+formati+"\t"+Edit2->Text+"01"+"\t\t"+pay_value+"\t"+"0.00\t0.00\t0.00\t0.00\t"+pay_value);

// ADOQuery1->Next();
 }
 Form2->Memo1->Lines->SaveToFile("tempauto.txt");
 if(FileExists("tempauto.txt"))
 {
 Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:接驳临时文件生成成功。");
 }
 else
 {
   Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:接驳临时文件生成失败,上传终止。");
   NMFTP2->Disconnect();
   return;
 }

AnsiString InsertString2= DateTimePicker1->Date.DateString();
AnsiString datelist = FormatDateTime("yyyy",InsertString2)+FormatDateTime("mm",InsertString2)+FormatDateTime("dd",InsertString2);
AnsiString FileName=Edit2->Text+ datelist +".txt";

 Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:开始上传文件。");
  NMFTP2->Upload("tempauto.txt",FileName);
  Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:清理临时文件。");
  DeleteFile("tempauto.txt");
  if(!FileExists("tempauto.txt"))
        Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:成功清理临时文件。");
  else
        Memo2->Lines->Insert(0,Now().TimeString()+" 自动上传:清理临时文件失败,请执行手动删除。");

 NMFTP2->Disconnect();
}
Пример #16
0
//---------------------------------------------------------------------------
AnsiString TUDP::GetLocalAddrPort(void)
{
  AnsiString rv(inet_ntoa(localAddr.sin_addr));
  rv += ":" + IntToStr(htons(localAddr.sin_port));
  return rv;
}
Пример #17
0
/**********************************************************************************
Description:	玩家的角色基本信息更新
@param	[in]	info
@return			int
@exception		none
*/
int RobRuleValid::DoICSSetRoleInfoPro(Rob_Ics_Complaint& ics_info)
{
	map<string, string> theParamIn;
	vector < map<string, string> > theGetResult;
	int iRoleExistFlag = 0;
	ValidLOG->WriteLog("单据过滤,验证单据有效性,单据信息:ICSID:%s|UIN:%s|Role_ID:%s\n", ics_info.sICSId.c_str(), ics_info.sUin.c_str(), ics_info.sRoleID.c_str());
	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "单据过滤,验证单据有效性,单据信息:ICSID:%s|UIN:%s|Role_ID:%s\n", ics_info.sICSId.c_str(), ics_info.sUin.c_str(), ics_info.sRoleID.c_str());

	//第一步角色基本信息更新:角色名字和等级
	ValidLOG->WriteLog("获取角色列表\n");
	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "获取角色列表\n");
	theParamIn["area"] = ics_info.sWordId;
	theParamIn["uin"]  = ics_info.sUin;
	iRet = valid_parse.GetFunction(ics_log_header(ics_info.sICSId, ics_info.sUin, ics_info.sServiceID), theParamIn, "ics_get_role_list", theGetResult);

	ValidLOG->WriteLog("获取角色列表,完成,结果:%d\n", iRet);
	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "获取角色列表,完成,结果:%d\n", iRet);

	for (int i = 0; i < theGetResult.size(); i++)
	{
		WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "获取玩家ID:%s|填单ID:%s\n", theGetResult[i]["name_0"].c_str(), ics_info.sRoleID.c_str());
		if (theGetResult[i]["name_0"] == ics_info.sRoleID)
		{
			ics_info.sRoleName = theGetResult[i]["name_1"];
			iRoleExistFlag = 1;
			ValidLOG->WriteLog("获取玩家角色名:%s|角色ID:%s\n", ics_info.sRoleName.c_str(), ics_info.sRoleID.c_str());
			WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "获取玩家等级:%s|角色ID:%s\n", ics_info.sRoleLevel.c_str(), ics_info.sRoleID.c_str());
		}
	}

	if (0 == iRoleExistFlag)
	{
		ValidLOG->WriteLog("没有找到相关玩家角色信息\n");
		WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_WARNING, __FUNCTION__, "没有找到相关玩家角色信息\n");
		return STEP_FLITER_RUN_STAT_ERROR_ROLE_INFO;
	}


	//第二步角色基本信息更新:【IDIP】
	theParamIn.clear();
	theGetResult.clear();

#ifdef fzr
	ValidLOG->WriteLog("In [fzr] Proccess,第二步角色基本信息更新:角色封号信息\n");
	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "In [dj2] Proccess,第二步角色基本信息更新:角色封号信息\n");

	//theParamIn["charac_no"] = ics_info.sRoleID;
	theParamIn["world_id"] = ics_info.sWordId;
	theParamIn["uin"] = ics_info.sUin;
#endif
	iRet = valid_parse.GetFunction(ics_log_header(ics_info.sICSId, ics_info.sUin, ics_info.sServiceID), \
		theParamIn, "ics_get_role_ban_info", theGetResult);
	ValidLOG->WriteLog("In Valid Proccess,DoICSSetRoleInfoPro-ics_get_role_ban_info-iRet=%d\n", iRet);
	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_INFO, __FUNCTION__, "In Valid Proccess,DoICSSetRoleInfoPro-ics_get_role_ban_info-iRet=%d\n", iRet);

	if (iRet != 0 || theGetResult.size() != 1)
	{
		return STEP_FLITER_RUN_STAT_ERROR_ROLE_INFO;
	}
	else
	{
		//ics_info.sRoleLevel = theGetResult[0]["level"];
		string stop_time = theGetResult[0]["ban_end_time"];
		time_t now_time = time(0);
		string strNTime = LLongToStr(now_time);
		ValidLOG->WriteLog("In [fzr] Proccess,DoICSSetRoleInfoPro-ics_get_role_ban_info-stop_time=%s\n", stop_time.c_str());
		WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_WARNING, __FUNCTION__, "In [fzr] Proccess,DoICSSetRoleInfoPro-ics_get_role_ban_info-stop_time=%s\n", stop_time.c_str());

		//如果查询到的时间为0,则未封
		if (stop_time < strNTime)
		{
			ics_info.siRobedRoleBan = "0";
		}
		//如果查询到的时间大于0,则已封,表封停时间
		else
		{
			ics_info.siRobedRoleBan = "1";//已封号
		}
	}
	//第三步角色基本信息更新:角色VIP信息
	 theParamIn.clear();
	 theGetResult.clear();
#ifdef fzr
	 	ValidLOG->WriteLog("In [fzr] Proccess,第三步角色基本信息更新:角色VIP信息\n");
	 	WriteLogsRUN(TLOG_TYPE_ROBANLYSVALID, ics_info.sICSId.c_str(), ics_info.sUin.c_str(), TLOG_LEVEL_WARNING, __FUNCTION__, "In [fzr] Proccess,第三步角色基本信息更新:角色VIP信息\n");
	
		//获取被盗用户的VIP 信息
		int iIsVip = ProCheckVIPInfo(ics_info);
		if(-1 == iIsVip)     // 如果获取VIP信息失败则当普通用户来处理
		{
			ics_info.sIsVip = "0";      
		}
		else
		{
			ics_info.sIsVip = IntToStr(iIsVip);
		}


#endif
	return 0;
}
Пример #18
0
//---------------------------------------------------------------------------
AnsiString TUDP::GetRemoteAddrPort(void)
{
  AnsiString rv(inet_ntoa(destAddr.sin_addr));
  rv += ":" + IntToStr(htons(destAddr.sin_port));
  return rv;
}
Пример #19
0
void MapEditor2D::SaveToTextFile (const char *fn) {
	objectId = 0;
	FILE *F = fopen (fn, "w+");
	string ws = "                   ";

	fputs ("Room\n", F);
	fputs (string("    Size : "+IntToStr (RoomSize.x)+", "+IntToStr (RoomSize.y)+";\n").c_str(), F);
	fputs ("end;\n\n", F);

	// Cameras
	for (int i = 0; i < Cameras.size(); i++) {
		fputs ("Camera\n", F);
		fputs (string("    Id : "+IntToStr(i)+";\n").c_str(), F);
		fputs (string("    Name : \""+wstring2string(Cameras[i]->Name)+"\";\n").c_str(), F);
		fputs (string("    Position : "+IntToStr (Cameras[i]->Position.x)+", "+IntToStr (Cameras[i]->Position.y)+";\n").c_str(), F);
		fputs (string("    Size : "+IntToStr (Cameras[i]->Size.x)+", "+IntToStr (Cameras[i]->Size.y)+";\n").c_str(), F);
		fputs ("end;\n\n", F);
	}

	// Layers
	for (int i = 0; i < Layers.size(); i++) {
		string bVisible = Layers[i]->Visible ? "True" : "False";
		fputs ("Layer\n", F);
		fputs (string("    Id : "+IntToStr(i)+";\n").c_str(), F);
		fputs (string("    Name : \""+Layers[i]->Name+"\";\n").c_str(), F);
		fputs (string("    Visible : "+bVisible+";\n").c_str(), F);
		fputs ("end;\n\n", F);

		for (int j = 0; j < Layers[i]->Objects.size(); j++) {
			Layers[i]->Objects[j]->Id = j;
			Layers[i]->Objects[j]->LayerId = i;
		}
	}

	// Objects
	for (int i = 0; i < Layers.size(); i++) {
		for (int j = 0; j < Layers[i]->Objects.size(); j++) {
			BaseGameObject *Obj = Layers[i]->Objects[j];
			string Type = "";

			if (dynamic_cast<PolygonObject*>(Obj)) Type = "Polygon";
			else if (dynamic_cast<PointObject*>(Obj)) Type = "Point";
			else if (dynamic_cast<LightObject*>(Obj)) Type = "Light";
			else Type = "Sprite";

			fputs (string("Object ("+Type+")\n").c_str(), F);
			fputs (string("    Id : "      +IntToStr(j)+";\n").c_str(), F);
			fputs (string("    Layer : "   +IntToStr(i)+";\n").c_str(), F);
			fputs (string("    Class : \"" +Obj->GameClass+";\"\n").c_str(), F);
			fputs (string("    Position : "+FloatToStr(Obj->Position.x)+", "+FloatToStr(Obj->Position.y)+";\n").c_str(), F);
			fputs (string("    Size : "    +FloatToStr(Obj->Size.x)+", "+FloatToStr(Obj->Size.y)+";\n").c_str(), F);
			fputs (string("    Rotation : "+FloatToStr(Obj->Rotation)+";\n").c_str(), F);

			if (dynamic_cast<PolygonObject*>(Obj))    WritePolygonObjectData ((PolygonObject*) Obj, F);
			else if (dynamic_cast<PointObject*>(Obj)) WritePointObjectData   (  (PointObject*) Obj, F);
			else if (dynamic_cast<LightObject*>(Obj)) WriteLightObjectData   (  (LightObject*) Obj, F);
			else WriteSpriteObjectData (Obj, F);
			//
			WriteMaterialData (Obj, F);
			WritePolygonsData (Obj, F);
			WriteLabelsData   (Obj, F);

			fputs ("end;\n\n", F);
			/*if (dynamic_cast<PolygonObject*>(Obj)) {

			} else {
				
				
				fputs ("end;\n\n", F);
			}*/
		}
	}

	fclose (F);
}
Пример #20
0
void TIniFile::WriteInteger(const wxString &Section, const wxString &Ident,
  long Value)
{
	WriteString(Section, Ident, IntToStr(Value));
}
Пример #21
0
void __fastcall TForm2::TBTimeChange(TObject *Sender)
{
LTime->Caption = IntToStr(TBTime->Position * 1000) + " ms";
Form1->Timer1->Interval = (TBTime->Position * 1000);
}
Пример #22
0
//# MENU feldtest
void feld_menu(){
	getInputWaitRelease();

	SETUPgout(BY_AMP);
	SETUPgout(BY_AMP_N);
	SETUPgout(TX_RX);
	SETUPgout(TX_RX_N);
	SETUPgout(BY_MIX);
	SETUPgout(BY_MIX_N);
	SETUPgout(LOW_HIGH_FILT);
	SETUPgout(LOW_HIGH_FILT_N);
	SETUPgout(TX_AMP);
	SETUPgout(RX_LNA);
	SETUPgout(CE_VCO);
	SETUPgout(MIXER_EN);

	char tu=0,td=0,tl=0,tr=0;
	char tuN=0,tdN=0,tlN=0,trN=0;
	char page=0;
	char tu2=0,td2=0,td2N=0,tl2=0,tr2=0;
	uint16_t sf=3500;
	char tu3=0,td3=0,tl3=0,tr3=0;

	int ctr=0;
	while (1) {
		lcdClear(0xff);
		lcdPrintln("Feld-Test v12");
		lcdPrintln("");
		lcdPrint("Page ");lcdPrintln(IntToStr(page,2,0));
		if (page==0){
			tu=GET(BY_MIX); tuN=GET(BY_MIX_N);
			lcdPrint(IntToStr(tu,1,F_HEX)); lcdPrint(IntToStr(tuN,1,F_HEX)); lcdPrintln(" Up BY_MIX/_N");
			td=GET(BY_AMP); tdN=GET(BY_AMP_N);
			lcdPrint(IntToStr(td,1,F_HEX)); lcdPrint(IntToStr(tdN,1,F_HEX)); lcdPrintln(" Dn BY_AMP/_N");
			tl=GET(TX_RX);tlN=GET(TX_RX_N);
			lcdPrint(IntToStr(tl,1,F_HEX)); lcdPrint(IntToStr(tlN,1,F_HEX)); lcdPrintln(" Lt TX_RX/_N");
			tr=GET(LOW_HIGH_FILT); trN=GET(LOW_HIGH_FILT_N);
			lcdPrint(IntToStr(tr,1,F_HEX)); lcdPrint(IntToStr(trN,1,F_HEX)); lcdPrintln(" Rt LOW_HIGH_FILT/_N");
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					tu=1-tu;
					if (tu){
						OFF(BY_MIX_N);
						ON(BY_MIX);
					}else{
						OFF(BY_MIX);
						ON(BY_MIX_N);
					};
					break;
				case BTN_DOWN:
					td=1-td;
					if (td){
						OFF(BY_AMP_N);
						ON(BY_AMP);
					}else{
						OFF(BY_AMP);
						ON(BY_AMP_N);
					};
					break;
				case BTN_LEFT:
					tl=1-tl;
					if (tl){
						OFF(TX_RX_N);
						ON(TX_RX);
					}else{
						OFF(TX_RX);
						ON(TX_RX_N);
					};
					break;
				case BTN_RIGHT:
					tr=1-tr;
					if (tr){
						OFF(LOW_HIGH_FILT_N);
						ON(LOW_HIGH_FILT);
					}else{
						OFF(LOW_HIGH_FILT);
						ON(LOW_HIGH_FILT_N);
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};
		}else if (page==1){
			lcdPrint("  "); lcdPrintln(" Up   ");
			td2=GET(RX_LNA);td2N=GET(TX_AMP);
			lcdPrint(IntToStr(td2,1,F_HEX)); lcdPrint(IntToStr(td2N,1,F_HEX)); lcdPrintln(" Dn RX/TX");
			lcdPrint(IntToStr(tl2,1,F_HEX)); lcdPrint(" ");                    lcdPrintln(" Lt MIXER_EN");
			lcdPrint(IntToStr(tr2,1,F_HEX)); lcdPrint(" ");
			if(tr2){
				lcdPrintln(" Rt SI-clk_dis");
			}else{
				lcdPrintln(" Rt SI-clk_en");
			};
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					tu2=1-tu2;
					if (tu2){
						;
					}else{
						;
					};
					break;
				case BTN_DOWN:
					td2=td2+2*td2N;
					td2++;
					td2=td2%3;
					switch (td2){
						case(0):
							OFF(RX_LNA);
							OFF(TX_AMP);
							break;
						case(1):
							ON(RX_LNA);
							OFF(TX_AMP);
							break;
						case(2):
							OFF(RX_LNA);
							ON(TX_AMP);
							break;
					};
					break;
				case BTN_LEFT:
					tl2=1-tl2;
					if (tl2){
						ON(MIXER_EN);
					}else{
						OFF(MIXER_EN);
					};
					break;
				case BTN_RIGHT:
					tr2=1-tr2;
					if (tr2){
						si5351c_power_down_all_clocks();
					}else{
						si5351c_set_clock_source(PLL_SOURCE_XTAL);
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};

		}else if (page==2){
			lcdPrint("SF: ");lcdPrint(IntToStr(sf,4,F_LONG)); lcdPrintln(" MHz");
			tl3=GET(CE_VCO);
			lcdPrint(IntToStr(tl3,1,F_HEX)); lcdPrint(" "); lcdPrintln(" Lt CE_VCO");
			lcdPrint("  "); lcdPrintln(" Rt ");
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					sf+=100;
					mixer_set_frequency(sf);
					break;
				case BTN_DOWN:
					sf-=100;
					mixer_set_frequency(sf);
					break;
				case BTN_LEFT:
					tl3=1-tl3;
					if (tl3){
						ON(CE_VCO);
						mixer_setup();
						mixer_set_frequency(sf);
					}else{
						OFF(CE_VCO);
					};
					break;
				case BTN_RIGHT:
					tr3=1-tr3;
					if (tr3){
						;
					}else{
						;
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};

		};
		if (page>2){page=0;}

		ON(LED1);
		delay(200000);
		OFF(LED1);
		delay(200000);

//		ctr++; lcdNl(); lcdPrint(IntToStr(ctr,4,F_HEX)); lcdDisplay();
	}
};
Пример #23
0
void __fastcall TCZYJSQFrm::QueryBTNClick(TObject *Sender)
{
	if(JSBeginDateEdit->Text.IsEmpty()||JSEndDateEdit->Text.IsEmpty())
    {
        ShowMessage("必须完整填写查询信息!");
        return;
    }

    QSSJstr = JSBeginDateEdit->Text + " 00:00:00";
    JZSJstr = JSEndDateEdit->Text + " 23:59:59";
    QCZYstr = USERComboBox->Text;

//    String sqlstr = "select SUM(case when SFLX='K' then SF_YE else 0 end) as KZE,SUM(case when SFLX='W' then SF_YE else 0 end) as KCB,SUM(case when SFLX='K' then 1 else 0 end) as KZCS,SUM(case when SFLX='a' then SFJE else 0 end) as AZE,SUM(case when SFLX='a' then 1 else 0 end) as AZCS,SUM(case when SFLX='I' then SFJE else 0 end) as IZE,SUM(case when SFLX='I' then 1 else 0 end) as IZCS,SUM(case when SFLX='F' then SF_YE else 0 end) as GZE,SUM(case when SFLX='G' then SFJE else 0 end) as GCB,SUM(case when SFLX='G' then 1 else 0 end) as GZCS,SUM(case when SFLX='D' then SFJE else 0 end) as DZE,SUM(case when SFLX='D' then 1 else 0 end) as DZCS from MXBAK where SFRQ>='";
	String sqlstr = "select SUM(case when SFLX='K' then MXBAK.SF_YE else 0 end) as KZE,SUM(case when SFLX='W' then MXBAK.SF_YE else 0 end) as KCB,SUM(case when SFLX='K' then 1 else 0 end) as KZCS,SUM(case when SFLX='a' then MXBAK.SFJE else 0 end) as AZE,SUM(case when SFLX='a' then 1 else 0 end) as AZCS,SUM(case when SFLX='I' then MXBAK.SFJE else 0 end) as IZE,SUM(case when SFLX='I' then 1 else 0 end) as IZCS,SUM(case when SFLX='F' then MXBAK.SF_YE else 0 end) as GZE,SUM(case when SFLX='G' then MXBAK.SFJE else 0 end) as GCB,SUM(case when SFLX='G' then 1 else 0 end) as GZCS,SUM(case when SFLX='D' then -MXBAK.SFJE else 0 end) as DZE,SUM(case when SFLX='D' then 1 else 0 end) as DZCS from MXBAK join CARD_F on MXBAK.BH=CARD_F.BH and MXBAK.KH=CARD_F.KH where SFRQ>='";

	sqlstr += QSSJstr;
    sqlstr += "' and SFRQ<='";
    sqlstr += JZSJstr;
    sqlstr += "'";

//    String TKsqlstr = "select SUM(case when YW=1 then 1 else 0 end) as TZCS,SUM(case when YW=1 then TKJE else 0 end) as TZE,SUM(case when YW=1 then TKCB else 0 end) as RZE,SUM(case when YW=0 then 1 else 0 end) as QZCS,SUM(case when YW=0 then TKJE else 0 end) as QZE from CARD_T where TKRQ>='";
	String TKsqlstr = "select SUM(case when YW=1 then 1 else 0 end) as TZCS,SUM(case when YW=1 then -TKJE else 0 end) as TZE,SUM(case when YW=1 then -TKCB else 0 end) as RZE,SUM(case when YW=0 then 1 else 0 end) as QZCS,SUM(case when YW=0 then -TKJE else 0 end) as QZE from CARD_T join OperationList on CARD_T.KH=OperationList.KH where (OperationList.LX='退卡' or OperationList.LX='无卡退卡' or OperationList.LX='补发卡') and CARD_T.TKRQ>='";

	TKsqlstr += QSSJstr;
    TKsqlstr += "' and CARD_T.TKRQ<='";
    TKsqlstr += JZSJstr;
    TKsqlstr += "'";

    if(QCZYstr != "所有系统用户"&&!QCZYstr.IsEmpty())
    {
        sqlstr += " and CZY='";
        sqlstr += QCZYstr;
        sqlstr += "'";

        TKsqlstr += " and CARD_T.TKOperator='";
        TKsqlstr += QCZYstr;
        TKsqlstr += "'";
    }

	JSADOQuery->Close();
    JSADOQuery->SQL->Clear();
    JSADOQuery->SQL->Add(sqlstr);
    JSADOQuery->Open();

    KZCSstr = JSADOQuery->FieldByName("KZCS")->AsInteger;
    KCBstr = JSADOQuery->FieldByName("KCB")->AsFloat;
    KZEstr = JSADOQuery->FieldByName("KZE")->AsFloat;

    AZCSstr = JSADOQuery->FieldByName("AZCS")->AsInteger;
    AZEstr = JSADOQuery->FieldByName("AZE")->AsFloat;

    IZCSstr = JSADOQuery->FieldByName("IZCS")->AsInteger;
    IZEstr = JSADOQuery->FieldByName("IZE")->AsFloat;

    GZCSstr = JSADOQuery->FieldByName("GZCS")->AsInteger;
    GCBstr = JSADOQuery->FieldByName("GCB")->AsFloat;
	GZEstr = "0";//JSADOQuery->FieldByName("GZE")->AsFloat;

    DZCSstr = JSADOQuery->FieldByName("DZCS")->AsInteger;
    DZEstr = JSADOQuery->FieldByName("DZE")->AsFloat;

    JSADOQuery->Close();
    JSADOQuery->SQL->Clear();
    JSADOQuery->SQL->Add(TKsqlstr);
    JSADOQuery->Open();
    TZCSstr = JSADOQuery->FieldByName("TZCS")->AsInteger;
    TCBstr = JSADOQuery->FieldByName("RZE")->AsFloat;
    TZEstr = JSADOQuery->FieldByName("TZE")->AsFloat;

    QZCSstr = JSADOQuery->FieldByName("QZCS")->AsInteger;
    QZEstr = JSADOQuery->FieldByName("QZE")->AsFloat;
    JSADOQuery->Close();

	cxTextEdit1->Text = KZCSstr;
    cxTextEdit2->Text = KCBstr;
    cxTextEdit3->Text = KZEstr;
    cxTextEdit4->Text = AZCSstr;
    cxTextEdit5->Text = ACBstr;
    cxTextEdit6->Text = AZEstr;
    cxTextEdit7->Text = IZCSstr;
    cxTextEdit8->Text = ICBstr;
    cxTextEdit9->Text = IZEstr;
    cxTextEdit10->Text = GZCSstr;
    cxTextEdit11->Text = GCBstr;
	cxTextEdit12->Text = GZEstr;
    cxTextEdit13->Text = DZCSstr;
    cxTextEdit14->Text = DCBstr;
    cxTextEdit15->Text = DZEstr;
    cxTextEdit16->Text = CZCSstr;
    cxTextEdit17->Text = CCBstr;
    cxTextEdit18->Text = CZEstr;
    cxTextEdit19->Text = TZCSstr;
    cxTextEdit20->Text = TCBstr;
    cxTextEdit21->Text = TZEstr;
    cxTextEdit22->Text = QZCSstr;
    cxTextEdit23->Text = QCBstr;
    cxTextEdit24->Text = QZEstr;


    JSZCSstr = IntToStr(StrToInt(KZCSstr)+StrToInt(AZCSstr)+StrToInt(IZCSstr)+
    			StrToInt(GZCSstr)+StrToInt(DZCSstr)+StrToInt(CZCSstr)+
                StrToInt(TZCSstr)+StrToInt(QZCSstr));
    JSZCBstr = FloatToStr(StrToFloat(KCBstr)+StrToFloat(ACBstr)+StrToFloat(ICBstr)+
    			StrToFloat(GCBstr)+StrToFloat(DCBstr)+StrToFloat(CCBstr)+
                StrToFloat(TCBstr)+StrToFloat(QCBstr));
    JSZJEstr = FloatToStr(StrToFloat(KZEstr)+StrToFloat(AZEstr)+StrToFloat(IZEstr)+
				StrToFloat(GZEstr)+StrToFloat(DZEstr)+StrToFloat(CZEstr)+
				StrToFloat(TZEstr)+StrToFloat(QZEstr));

    cxTextEdit25->Text = JSZCSstr;
    cxTextEdit26->Text = JSZCBstr;
    cxTextEdit27->Text = JSZJEstr;

    ZCZJEstr = FloatToStr(StrToFloat(DZEstr)+StrToFloat(TZEstr)+StrToFloat(QZEstr)+StrToFloat(TCBstr));
    SRZJEstr = FloatToStr(StrToFloat(AZEstr)+StrToFloat(IZEstr)+StrToFloat(KZEstr)+StrToFloat(GCBstr));
    ZJSstr = FloatToStr(StrToFloat(SRZJEstr)+StrToFloat(ZCZJEstr));

    cxTextEdit28->Text = ZCZJEstr;
    cxTextEdit29->Text = SRZJEstr;
    cxTextEdit30->Text = ZJSstr;

    ExportBTN->Enabled = true;
    PreviewBTN->Enabled = true;
}
void main() {
  current_duty=125;
  Lcd_Init();                        // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  
  //LCD_show();
  DDRB = 0xFF;               // Set PORTB as output
  //DDRC = 0xFF;               // Set PORTC as output
  Lcd_Cmd(_LCD_CLEAR);
  Flag=3;
  PWM1_Init(_PWM1_FAST_MODE, _PWM1_PRESCALER_8, _PWM1_NON_INVERTED, current_duty);

  while (1) {


    LDR_1 = ADC_Read(0);    // get ADC value from 2nd channel
    LDR_2 = ADC_Read(1);
    LDR_3 = ADC_Read(2);
    LDR_4 = ADC_Read(3);
    LDR_5 = ADC_Read(4);
    prev_pos=Flag;
    if (LDR_1<LDR_2 && LDR_1<LDR_3 && LDR_1<LDR_4)
    {
    Flag=1;
    }
    else if (LDR_2<LDR_1 && LDR_2<LDR_3 && LDR_2<LDR_4)
    {
    Flag=2;
    }
    else if (LDR_3<LDR_1 && LDR_3<LDR_2 && LDR_3<LDR_4)
    {
    Flag=3;
    }
    else if (LDR_4<LDR_1 && LDR_4<LDR_2 && LDR_4<LDR_3)
    {
    Flag=4;
    }
    goal=Flag;
    Lcd_Cmd(_LCD_CLEAR);
    IntToStr(goal,adc_show1);
    IntToStr(prev_pos,adc_show2);
    IntToStr(LDR_3,adc_show3);
    IntToStr(LDR_4,adc_show4);
    IntToStr(LDR_5,adc_show5);
    Lcd_Out(1,1,adc_show1);
    Lcd_Out(1,8,adc_show2);
    //Lcd_Out(2,1,adc_show3);
    //Lcd_Out(2,6,adc_show4);
    //Delay_ms(5000);
    //Lcd_Out(2,10,adc_show5);
    //
    /*Lcd_Out(1,1,txt5);
    IntToStr(LDR_1,adc_show);
    Lcd_Out(2,1,adc_show);
    Delay_ms(5000);
    Lcd_Cmd(_LCD_CLEAR);
    Delay_ms(1000);
    //
    Lcd_Out(1,1,txt6);
    IntToStr(LDR_2,adc_show);
    Lcd_Out(2,1,adc_show);
    Delay_ms(5000);
    Lcd_Cmd(_LCD_CLEAR);
    Delay_ms(1000);
    //
    Lcd_Out(1,1,txt7);
    IntToStr(LDR_3,adc_show);
    Lcd_Out(2,1,adc_show);
    Delay_ms(5000);
    Lcd_Cmd(_LCD_CLEAR);
    Delay_ms(1000);
    //
    Lcd_Out(1,1,txt8);
    IntToStr(LDR_4,adc_show);
    Lcd_Out(2,1,adc_show);
    Delay_ms(5000);
    Lcd_Cmd(_LCD_CLEAR);
    Delay_ms(1000); */
    //Lcd_Cmd(_LCD_CLEAR);
    //Delay_ms(1000);
    //IntToStr(goal,gool);
    //IntToStr(prev_pos,prv);
    //Lcd_Out(1,1,gool);
    //Lcd_Out(1,6,prv);
    // motor rotation Start
    if (goal==prev_pos)
    {
      Lcd_Out(2,1,txt2);
      Delay_ms(1000);
    }
       else
   {

     Lcd_Out(2,1,txt1);

      if (goal>prev_pos)
      {
         for (i=prev_pos;i<=goal;i++)
         {
          PORTB.B0=0;
          PORTB.B1=1;
          Delay_ms(one_rot);
         }
      }
      else
      {
          for (i=prev_pos;i<=(4+goal);i++)
         {
          PORTB.B0=0;
          PORTB.B1=1;
          Delay_ms(one_rot);
         }
      }

   }
      PORTB.B0=1;
      PORTB.B1=1;// Motor stop
      Delay_ms(1000);
    //motor rotation End
  }

}
Пример #25
0
//---------------------------------------------------------------------------
void __fastcall TFormReportDocZachislenie::CreateWordDocument(void)
{
    int numspec,numform;

    InitReportQuery();

    WordMacros macros;
    macros.BeginMacros();

    macros.InsertLine("Selection.SetRange Start:=0, End:=0");

    macros.SelectionParagraphFormat("Alignment = wdAlignParagraphJustify");
    macros.SelectionFont("Bold = true");
    macros.SelectionText("Слушали: ");
    macros.SelectionFont("Bold = false");
    macros.SelectionText("о зачислении студентами и слушателями ННГАСУ на места с оплатой стоимости обучения на договорной основе.");
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionFont("Bold = true");
    macros.SelectionText("Постановили: ");
    macros.SelectionFont("Bold = false");
    macros.SelectionText("зачислить студентами и слушателями ННГАСУ на места с оплатой стоимости обучения на договорной основе.");
    macros.SelectionTypeParagraph();
    macros.SelectionParagraphFormat("Alignment = wdAlignParagraphCenter");
    macros.SelectionTypeParagraph();
    macros.SelectionFont("Bold = false");
    macros.SelectionText("Зачислить студентами 1-го курса с 01 сентября 20__ года на места с оплатой стоимости обучения на договорной основе следующих абитуриентов:");
    macros.SelectionTypeParagraph();
    macros.SelectionFont("Bold = true");
    macros.SelectionText(" в институт экономики, управления и права");
    macros.SelectionTypeParagraph();
    macros.SelectionFont("Bold = false");

    if (ZMySqlQuery->RecordCount==0)
        return;

    numspec=-1;
    numform=-1;
    int CountTables=0;
    int CountRows;
    int CountPrevRows=0;
    int CountPrevPrevRows=0;
    AnsiString Str,Strtmp;
    for (int i = 0; i < ZMySqlQuery->RecordCount; i++)
    {
        ZMySqlQuery->RecNo = i+1;
        if ( numspec!=ZMySqlQuery->Fields->FieldByNumber(4)->AsString.ToInt() ||
                numform!=ZMySqlQuery->Fields->FieldByNumber(5)->AsString.ToInt() )
        {
            numspec=ZMySqlQuery->Fields->FieldByNumber(4)->AsString.ToInt();
            numform=ZMySqlQuery->Fields->FieldByNumber(5)->AsString.ToInt();
            macros.SelectionTypeParagraph();
            macros.SelectionTypeParagraph();
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphCenter");
            macros.SelectionText("на 1 курс по специальности \"");
            macros.SelectionFont("Bold = true");
            macros.SelectionText(WCGetTitleForKeyNum(SPECS,numspec));
            macros.SelectionText("\"");
            macros.SelectionFont("Bold = false");
            macros.SelectionText(", с формой обучения - ");
            macros.SelectionText(WCGetTitleForKeyNum(EDUFORMS,numform));
            macros.SelectionTypeParagraph();
            macros.SelectionTypeParagraph();
            CountRows=0;
            for (int j=i;j<ZMySqlQuery->RecordCount;j++)
            {
                ZMySqlQuery->RecNo=j+1;
                if (numspec!=ZMySqlQuery->Fields->FieldByNumber(4)->AsString.ToInt() ||
                    numform!=ZMySqlQuery->Fields->FieldByNumber(5)->AsString.ToInt()) break;
                CountRows++;
            }
            ZMySqlQuery->RecNo=i+1;
            macros.TablesAdd(CountRows, 6);
            macros.TableStyle(WordMacros::StyleNone);
            CountTables++;

            macros.TablesColumns(CountTables, 1, "Width = 30");
            macros.TablesColumns(CountTables, 2, "Width = 90");
            macros.TablesColumns(CountTables, 3, "Width = 80");
            macros.TablesColumns(CountTables, 4, "Width = 90");
            macros.TablesColumns(CountTables, 5, "Width = 100");
            macros.TablesColumns(CountTables, 6, "Width = 50");

            macros.TablesColumns(CountTables, 1, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphRight");
            macros.TablesColumns(CountTables, 2, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphLeft");
            macros.TablesColumns(CountTables, 3, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphLeft");
            macros.TablesColumns(CountTables, 4, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphLeft");
            macros.TablesColumns(CountTables, 5, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphRight");
            macros.TablesColumns(CountTables, 6, "Select");
            macros.SelectionParagraphFormat("Alignment = wdAlignParagraphLeft");
            macros.InsertLine("ActiveDocument.Tables.Item(" + IntToStr(CountTables) + ").Range.Font.Size = 10");

            CountPrevPrevRows=CountPrevRows;
            CountPrevRows+=CountRows;
        }
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 1, "Range.Text = \"" + AnsiString(i+1-CountPrevPrevRows) + "\"");
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 2, "Range.Text = \"" + ZMySqlQuery->Fields->FieldByNumber(1)->AsString + "\"");
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 3, "Range.Text = \"" + ZMySqlQuery->Fields->FieldByNumber(2)->AsString + "\"");
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 4, "Range.Text = \"" + ZMySqlQuery->Fields->FieldByNumber(3)->AsString + "\"");

        Str=WCGetTitleForKeyNum(DOGSHIFRS,ZMySqlQuery->Fields->FieldByNumber(6)->AsString.ToInt())+"-";
        Str+=WCGetTitleForKeyNum(DOGYEARS,ZMySqlQuery->Fields->FieldByNumber(8)->AsString.ToInt());
        Strtmp=WCGetTitleForKeyNum(DOGFASTS,ZMySqlQuery->Fields->FieldByNumber(9)->AsString.ToInt());
        if (!Strtmp.IsEmpty())
            Str+="-"+Strtmp;
        Str+=" -";
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 5, "Range.Text = \"" + Str + "\"");
        macros.TablesCell(CountTables, i+1-CountPrevPrevRows, 6, "Range.Text = \"" + ZMySqlQuery->Fields->FieldByNumber(7)->AsString + "\"");
        if (i+1 == CountPrevRows)
        {
           macros.TablesCell(CountTables, CountRows, 1, "Range.Select");
           macros.InsertLine("Selection.MoveDown Unit := wdLine, Count := 2");
        }
    }
    macros.SelectionParagraphFormat("Alignment = wdAlignParagraphLeft");
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionText("Председатель приемной комиссии");
    macros.SelectionTypeParagraph();
    macros.SelectionText("ректор, академик                                                                       Е.В. Копосов");
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionTypeParagraph();
    macros.SelectionText("Ответственный секретарь");
    macros.SelectionTypeParagraph();
    macros.SelectionText("приемной комиссии, доцент                                                   Н.Д. Жилина");
    macros.InsertLine("ActiveWindow.ActivePane.VerticalPercentScrolled = 0");
    
    macros.EndMacros();
    macros.RunMacros();

}
Пример #26
0
//---------------------------------------------------------------------------
void __fastcall TPingTstForm::Ping1EchoRequest(TObject *Sender, TObject *Icmp)
{
    DisplayMemo->Lines->Add("Sending " + IntToStr(Ping1->Size) + " bytes to " +
                          Ping1->HostName + " (" + Ping1->HostIP + ")");
}
Пример #27
0
bool IMask3x3::setValue(TypeConfig *type, int x, int y, int value)
{
   if (type->getName()!="Mask3x3") return false;
   type->setInt("d"+IntToStr(y)+"_"+IntToStr(x), value);
   return true;
}
Пример #28
0
void __fastcall TMailSndForm::SmtpClientRequestDone(TObject *Sender,
	  TSmtpRequest RqType, WORD Error)
{
	DisplayMemo->Lines->Add("RequestDone Rq=" + IntToStr(RqType) +
						  " Error=" + IntToStr(Error));
}
Пример #29
0
//---------------------------------------------------------------------------
void __fastcall TGroundGroupForm::AltSpinButtonUpClick(TObject *Sender)
{
		GGSpeedData->Text = IntToStr(StrToInt(GGSpeedData->Text) + 1);

}
Пример #30
0
//---------------------------------------------------------------------------
void __fastcall THttpTestForm::SslHttpCli1SslHandshakeDone(TObject *Sender,
      WORD ErrCode, TX509Base *PeerCert, bool &Disconnect)
{
     TX509List*   CertChain;
     AnsiString   Msg;
     int          I;
     AnsiString   IP;
     AnsiString   Hash;
	 TSslHttpCli* HttpCli;

    Display("Handshake done, error #" + IntToStr(ErrCode));
	HttpCli = (TSslHttpCli*)Sender;
	CertChain = HttpCli->CtrlSocket->SslCertChain;
    Display("! " + IntToStr(CertChain->Count) +
            " Certificate(s) in the verify chain.");

    // A simple custom verification that may be unsecure!
    // See also SslVerifyPeer above->

    if ((ErrCode != 0) || (HttpCli->CtrlSocket->SslSessionReused()) ||
       !HttpCli->SslContext->SslVerifyPeer)
        return;

    IP   = HttpCli->CtrlSocket->GetPeerAddr();
    Hash = PeerCert->Sha1Hex;

    if (HttpCli->SslAcceptableHosts->IndexOf(IP + Hash) > -1)
        return;

    HttpCli->Abort();

    if (CertChain->Count > 0) {
        Msg = "Certificates in chain:\r\n";
        for (I = 0; I < CertChain->Count; I++) {
            if (Msg.Length() > 0)
                Msg = Msg + "\r\n";
            Msg = Msg +  IntToStr(I + 1) + ")" +
                " SubjectCommonName: " + CertChain->Items[I]->SubjectCName + "\r\n" +
                " Last VerifyResult: " + CertChain->Items[I]->VerifyErrMsg + "\r\n";
        }
    }

    // Post connection check in case of SSL handshake went well
    // Checks whether argument HostOrIp matches dnsName or commonName
    // of a peer certificate, this is the string-argument of the function
    // For demo purposes a simple, constant string is passed->
    if (!PeerCert->PostConnectionCheck("www->overbyte->be")) {
        if (Msg.Length() > 0)
            Msg = Msg + "\r\n";
        if (MessageDlg(Msg + "Post connection check:\r\n" +
                      "The name specified in the peer certificate is\r\n" +
                      "invalid or does not match the site!\r\n\r\n" +
                      "Do you want to trust the connection anyway ?",
                       mtWarning, TMsgDlgButtons() << mbYes << mbNo, 0) != mrYes) {
            Disconnect = TRUE;
            Display("Post connection check failed, peer will be disconnected");
        }
        else {
            // Add peer cert to the trusted certs
            HttpCli->SslAcceptableHosts->Add(IP + Hash);
            PostMessage(Handle, WM_SSL_NOT_TRUSTED, 0, (int)Sender);
        }
    }
    else {
        if (MessageDlg(Msg + "\r\n" +
                      "Peer certificate was issued to the site.\r\n\r\n" +
                      "Do you want to trust the connection anyway ?",
                       mtWarning, TMsgDlgButtons() << mbYes << mbNo, 0) != mrYes) {
            Disconnect = TRUE;
            Display("Custom verification failed, peer will be disconnected");
        }
        else {
            // Add peer cert to the trusted certs
            HttpCli->SslAcceptableHosts->Add(IP + Hash);
            PostMessage(Handle, WM_SSL_NOT_TRUSTED, 0, Integer(Sender));
        }
    }
}