lan0sic
Messages postés25Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 6 mars 2005
-
17 févr. 2003 à 20:14
cs_DarkLord
Messages postés1Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention29 mars 2004
-
29 mars 2004 à 08:54
Bijour,
voila j'aimerait qu'un case test 2 caractère :
case (Edit.text[i]+Edit.text[i+1]) of
'ab' : begin
................
Mais ca marche pas, pourquoi? Ya t'il une autre solution.
MERCI bcp!!
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 17 févr. 2003 à 21:45
Le case ne fonctionne que sur les type Ordinaux ( entiers, enumérés, caractères...), les chaines ne font pas partie des ordinaux. Case n'est donc pas applicable dans ce cas.
La seule solution est d'utiliser des If Then Esle :
Chaine:=Edit.text[i]+Edit.text[i+1];
If Chaine='ab'
Then ....
Else If Chaine='bc'
Then ...
Else If ...
--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
cs_DarkLord
Messages postés1Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention29 mars 2004 29 mars 2004 à 08:54
Voici comment faire un case avec des chaines de caractères...
Focntion qui peut être améliorée !
function StringIndex(s: string; list: array of string): integer;
var i: integer;
begin
result := -1;
for i := 0 to high(list) do
if AnsiCompareText(list[i], s) = 0 then
begin
result := i;
break;
end;
end;
case StringIndex(MaChaine, ['ceci', 'cela', 'autrechose']) of
0: FaireCeci;
1: FaireCela;
2: FaireAutreChose;
end;