AnsiIndexStr sans etre case sensitive [Résolu]

Signaler
Messages postés
90
Date d'inscription
mardi 28 octobre 2003
Statut
Membre
Dernière intervention
24 avril 2008
-
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
-
bonjour,
j'utilise la méthode AnsiIndexStr  pour créer des objets typés comme l'indique l'exemple ci-desous :

CONSTRUCTOR TCMContrainte.creation(noContrainte, typeContraint: integer; name: STRING; noCoil, priority: integer);
BEGIN
CASE AnsiIndexStr(name, ['Contrainte_Heating_Speed_1',
      'Contrainte_Gaz_Flow_1',
      'Contrainte_Gaz_Flow_2',
      'Contrainte_Gaz_Flow_3',
      'Contrainte_Carbon_Deposition_1',
      'Contrainte_Carbon_Deposition_2',
      'Contrainte_Carbon_Deposition_3']) OF
    0: self := TCMContrainteHeatingSpeed1.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 40);
    1: self := TCMContrainteGazFlow1.creation(noContrainte, name, noCoil, typeContraint, priorite, 650, 10.5, 650);
    2: self := TCMContrainteGazFlow2.creation(noContrainte, name, noCoil, typeContraint, priorite, 650, 10.5, 650);
    3: self := TCMContrainteGazFlow3.creation(noContrainte, name, noCoil, typeContraint, priorite, 650.0, 17);
    4: self := TCMContrainteCarbonDeposition1.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
    5: self := TCMContrainteCarbonDeposition2.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
    6: self := TCMContrainteCarbonDeposition3.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
 END;
END;

Malheureusement, la méthode AnsiIndexStr gère le case sensitive

Comment faire pour s'en affranchir?

merci beaucoup.

5 réponses

Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Salut,


Utilise la fonction AnsiIndexText (qui compare sans tenir compte de la casse, mais attention aux accents). 


A +
Thierry
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
5
Salut furax13,

Tiens, je connaissais pas AnsiIndexStr, m'a l'air bien pratique... dommage que j'aie que D4 !

Quoi qu'il en soit, pourquoi ne pas utiliser UpperCase, tout simplement ?
Comme ceci :

CONSTRUCTOR TCMContrainte.creation(noContrainte, typeContraint: integer; name: STRING; noCoil, priority: integer);
BEGIN
CASE AnsiIndexStr(UpperCase(name), [UpperCase('Contrainte_Heating_Speed_1'),
      UpperCase('Contrainte_Gaz_Flow_1'),
      UpperCase('Contrainte_Gaz_Flow_2'),
      UpperCase('Contrainte_Gaz_Flow_3'),
      UpperCase('Contrainte_Carbon_Deposition_1'),
      UpperCase('Contrainte_Carbon_Deposition_2'),
      UpperCase('Contrainte_Carbon_Deposition_3')]) OF
    0: self := TCMContrainteHeatingSpeed1.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 40);
    1: self := TCMContrainteGazFlow1.creation(noContrainte, name, noCoil, typeContraint, priorite, 650, 10.5, 650);
    2: self := TCMContrainteGazFlow2.creation(noContrainte, name, noCoil, typeContraint, priorite, 650, 10.5, 650);
    3: self := TCMContrainteGazFlow3.creation(noContrainte, name, noCoil, typeContraint, priorite, 650.0, 17);
    4: self := TCMContrainteCarbonDeposition1.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
    5: self := TCMContrainteCarbonDeposition2.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
    6: self := TCMContrainteCarbonDeposition3.creation(noContrainte, name, noCoil, typeContraint, priorite, 700, 50, 650);
 END;
END;

Bonne prog'

signé <strike>furax</strike> japee, lol
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
5
Ou AnsiUpperCase, mais ça ne me paraissait pas utile dans le contexte...
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
5
Ah, salut Thierry... on s'est croisés, lol.


Encore une que je ne connaissais pas !
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Salut japee,

on s'est même croisé 2 x. (lol)
ceci dit, la fonction AnsiIndexText ne fait probablement rien d'autre que de comparer en majuscules (uppercase).