OVH Cloud OVH Cloud

Operateur ? :

3 réponses
Avatar
olive
Bonjour
au lieu de faire
Code:
if(mon controle est vide){
//traitement
}else{
//code
}


je fais appel a l'operateur ? :
je l'appelle dans les parametres d'une fonction

comme ceci

Code:
AnsiString s;
_pCtrl->AddDatasToEtablissement(

pAbrev[CboTypes->ItemIndex]._CodeType,
CodeCommune,

_ptZone[CboZoneGeo->ItemIndex]._CodeZone,

(s=((EdCodeRNE->Text=="")?"NULL":s)), // ca plante
EdNomIntitule->Text,
EdAdresse->Text,
EdCompAdresse->Text,
EdVille->Text,
AlignTel->Text,
EdMail->Text,
EdSiteWeb->Text,

(EdNbEns->Text==""?-1:EdNbEns->Text.ToInt()) // correct
);


j'ai un message du compilateur me disant
[C++ Erreur] TFrmAdd.cpp(182): E2354 Deux opérandes doivent évaluer le même
type

comment faire pour que cela passe ?
est ce possible ?

ce m'eviterais des lignes de code.....

merci de votre aide
_________________
Cordialement,
Sarda Olivier

3 réponses

Avatar
Christophe de VIENNE
olive wrote:

(s=((EdCodeRNE->Text=="")?"NULL":s)), // ca plante


Essayes
(s=((EdCodeRNE->Text=="")?AnsiString("NULL"):s))

Pour en savoir plus sur les subtilités de l'opérateur voir le fil de
discussion 'evaluation avec "? "...un vestige de C ? ex: b1 ? "..." :
"...."' qui est en cours.

A+

Christophe

--
Christophe de Vienne

Avatar
olive
je te remercie cela marche

"Christophe de VIENNE" a écrit dans le message de
news:newscache$ybcvzh$npo$
olive wrote:

(s=((EdCodeRNE->Text=="")?"NULL":s)), // ca plante


Essayes
(s=((EdCodeRNE->Text=="")?AnsiString("NULL"):s))

Pour en savoir plus sur les subtilités de l'opérateur voir le fil de
discussion 'evaluation avec "? "...un vestige de C ? ex: b1 ? "..." :
"...."' qui est en cours.

A+

Christophe

--
Christophe de Vienne



Avatar
James Kanze
"olive" writes:

|> (s=((EdCodeRNE->Text=="")?"NULL":s)), // ca plante

|> j'ai un message du compilateur me disant
|> [C++ Erreur] TFrmAdd.cpp(182): E2354 Deux opérandes doivent évaluer le même
|> type

|> comment faire pour que cela passe ?

Fais que les deux opérands ont le même type. Peut-être :

(s = ((EdCodeRNE->Text == "") ? AnsiString( "NULL " ) : s)),

Ceci dit, dans ce cas-ci, j'affecterai bien s avant l'appel dont cette
expression était paramètre.

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34