Delphi : probleme de IF

Delphi : probleme de IF - Delphi/Pascal - Programmation

Marsh Posté le 08-05-2002 à 15:55:04    

je comprend pas ce qui se passe.
quand jenvoi avec mon client, le texte 'Hello1', mon serveur maffiche bien 'Hello1' en ShowMessage.  
mais si j'envoi Hello2, et Hello3, ca marche pas.
 

Citation :

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
                                         
        if Socket.ReceiveText = 'Hello1' then
        ShowMessage('Hello1';);
         
        if Socket.ReceiveText = 'Hello2' then
        ShowMessage('Hello2';);
         
        if Socket.ReceiveText = 'Hello3' then
        ShowMessage('Hello3';);
         
end;


 
en FAIT ya que le 1er IF qui marche. les autres sont pas comptés. me faut rajouter quoi pour que tous les IF soit vérifiés ?

 

[jfdsdjhfuetppo]--Message édité par jeep05 le 08-05-2002 à 15:59:49--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 08-05-2002 à 15:55:04   

Reply

Marsh Posté le 08-05-2002 à 16:07:37    

ca a l'air d'etre bon...
 
si tu le passes en debug, ca donne quoi !?
fait peut etre un ShowMessage(Socket.ReceiveText); avant les Ifs pour voir ce que ca contient !
 
aussi, verifie la casse (min/maj), le = rendra false dans le test text = 'Hello1' si text est egal a 'HELLO1'


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 08-05-2002 à 16:14:33    

JWhy a écrit a écrit :

ca a l'air d'etre bon...
 
si tu le passes en debug, ca donne quoi !?
fait peut etre un ShowMessage(Socket.ReceiveText); avant les Ifs pour voir ce que ca contient !
 
aussi, verifie la casse (min/maj), le = rendra false dans le test text = 'Hello1' si text est egal a 'HELLO1'  




avec ShowMessage(Socket...)
c pareil, en fait ShowMessage marche que pour le 1er.
par contre, ya pas écrit 'Hello1' dans la boite, ya rien écrit !?

Reply

Marsh Posté le 08-05-2002 à 16:23:00    

bon, ben je vais faire comme ca.
au moins, la ca marche :
 

Citation :

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
var
       text : String;  
 
begin
       
       text:= Socket.ReceiveText  
                           
       if text = 'Hello1' then
       ShowMessage('Hello1';);
       
       if text = 'Hello2' then
       ShowMessage('Hello2';);
       
       if text = 'Hello3' then
       ShowMessage('Hello3';);
       
end;

Reply

Marsh Posté le 08-05-2002 à 17:32:15    

Bon j'étais pas là pour répondre, mais en effet tu ne peux interroger qu'une seule fois ReceiveText si tu veux comparer le texte reçu à plusieurs valeurs, donc la bonne solution est celle de la variable "texte"...
Sinon pour optimiser un peu ton code tu pourrais mettre des else :
if(....) then
   show....
else
if(....) then
   show....
else
if(....) then
   show....;
 
Et pour la comparaison case-insensitive y a la fonction SameText(texte, 'hello1';);
 
PS : text c'est pas un très bon nom de variable car il s'agit aussi d'un type de variable (handle de fichier texte).

 

[jfdsdjhfuetppo]--Message édité par antp le 08-05-2002 à 17:34:39--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed