На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> WinSocet
    Почему при такой конструкции работает только первое условие, а остальные работать не хотят?

    ExpandedWrap disabled
      <br>void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,<br>      TCustomWinSocket *Socket)<br>{<br>if(Socket->ReceiveText()=="MC")<br>        {<br>        ShellExecute(Handle,"open","d:/c.bat",NULL,NULL,SW_SHOWNOACTIVATE);<br>        log(24);<br>        }<br>else if(Socket->ReceiveText()=="GZ")<br>        {<br>        post();<br>        log(9);<br>        }<br>else if(Socket->ReceiveText()=="5OTD")<br>        {<br>        ShellExecute(Handle,"open","d:/o.bat",NULL,NULL,SW_SHOWNOACTIVATE);<br>        log(7);<br>        return;<br>        }<br>
    Сообщение отредактировано: Monster -
      О, а разве так можно строки сравнивать? Чё-то отстал я от жизни.
        А так не пойдёт?
        ExpandedWrap disabled
          <br>char *bla = Socket->ReceiveText();<br><br>if(!strcmp("MC", bla))<br>        {<br>ShellExecute(Handle,"open","d:/c.bat",NULL,NULL,SW_SHOWNOACTIVATE);<br>        log(24);<br>        }<br>else if(!strcmp("GZ", bla))<br>        {<br>        post();<br>        log(9);<br>        }<br>else if(!strcmp("50TD", bla))<br>        {<br>ShellExecute(Handle,"open","d:/o.bat",NULL,NULL,SW_SHOWNOACTIVATE);<br>        log(7);<br>        return;<br>        }<br>
          Так вообще не работает.
            Цитата CBP, 05.09.02, 15:53:55
            О, а разве так можно строки сравнивать? Чё-то отстал я от жизни.


            Наверное отстал... Сейчас уже придумали классы AnsiString и сравнивается все правильно.

            Вот только то что принимаешь при первом иф, при втором не вылезет...
            пробуй так:

            AnsiString s;
            s=Socket->ReceiveText();

            if(s=="MC")
                   {
                   
                    }

            if(s=="GZ")  
                   {
                   
                    }

            и т д.
              Ура заработало Спасибо огромное!!! :)
                > Сейчас уже придумали классы AnsiString и сравнивается все правильно
                Прогресс, однако! А в switch--case их можно засовывать?
                  Нет, нельзя.  Свитч/кэйс может работать только с целочисленными константами
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0339 ]   [ 16 queries used ]   [ Generated: 15.05.24, 18:36 GMT ]