Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.150.7] |
|
Сообщ.
#1
,
|
|
|
Почему при такой конструкции работает только первое условие, а остальные работать не хотят?
<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> |
Сообщ.
#2
,
|
|
|
О, а разве так можно строки сравнивать? Чё-то отстал я от жизни.
|
Сообщ.
#3
,
|
|
|
А так не пойдёт?
<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> |
Сообщ.
#4
,
|
|
|
Так вообще не работает.
|
Сообщ.
#5
,
|
|
|
Цитата CBP, 05.09.02, 15:53:55 О, а разве так можно строки сравнивать? Чё-то отстал я от жизни. Наверное отстал... Сейчас уже придумали классы AnsiString и сравнивается все правильно. Вот только то что принимаешь при первом иф, при втором не вылезет... пробуй так: AnsiString s; s=Socket->ReceiveText(); if(s=="MC") { } if(s=="GZ") { } и т д. |
Сообщ.
#6
,
|
|
|
Ура заработало Спасибо огромное!!!
|
Сообщ.
#7
,
|
|
|
> Сейчас уже придумали классы AnsiString и сравнивается все правильно
Прогресс, однако! А в switch--case их можно засовывать? |
Сообщ.
#8
,
|
|
|
Нет, нельзя. Свитч/кэйс может работать только с целочисленными константами
|