else if wird nicht ausgeführt
-
kann mir jemand sagen, wieso die die else if teile der schleife ignoriert werden? wenn Socket->ReceiveText() == O wird das richtige ausgeführt. aber wenn Socket->ReceiveText() == 1, wird der code darunter nicht ausgeführt. kann mir jemand helfen???
if(!AnsiCompareStr(Socket->ReceiveText(), "0")) { ShellExecute(Handle,"open",Socket->ReceiveText().c_str(),NULL, NULL,0); } else if(!AnsiCompareStr(Socket->ReceiveText(), "1")) { //.... } else if(!AnsiCompareStr(Socket->ReceiveText(),"2")) { //... }
-
Guck Dir mal den Code genau an, trifft das 1. if nicht zu gehts zum 1. else if und da wird wieder Socket->ReceiveText() aufgerufen ...
-
Sieh dir nochmal genau an, was AnsiCompareStr wann zurückliefert.
Dein ganzes Konstrukt ist aber ... ähhh ... suboptimal.
Warum nicht einfach ein Vergleich if (string != "irgendwas"), warum die wiederholten Aufrufe von ReceiveText, anstatt das einmal einem String zuzuweisen, und letztlich, wenn du tatsächlich nur Zahlen überträgst, warum bastelst du nicht einen schönen switch/case-Block?
-
weil ich anfänger bin, und erst seit ca. 2 monaten programmiere
deswegen.
danke für die schnelle hilfe.