Bonjour à tous,
est-ce que vous savez s'il existe une fonction qui teste la présence ou non d'un caractère dans une chaine de caractères Delphi? J'ai essayé Contains mais ca ne marche pas :s
Merci d'avance![]()
Bonjour à tous,
est-ce que vous savez s'il existe une fonction qui teste la présence ou non d'un caractère dans une chaine de caractères Delphi? J'ai essayé Contains mais ca ne marche pas :s
Merci d'avance![]()
Il existe la fonction POS :
POS (chaine a rechercher, chaine source)
Merci d'ajouter unsur les tags qui vous ont aidé
Oui mais cette fonction retourne un integer!! Moi je souhaiterais une fonction qui retourne vrai ou faux, en fonction de la présence ou non de la chaine de caractère.
sinon je peux faire un string.pos(chaine, source) <> 0
Mais j'ai l'impression qu'il ne me trouve pas la fonction pos...:'(
Pos, PosEx ou tout simplement une petite boucle !
Ou encore ContainsStr ou ContainsText qui renvoie directement un boolean, la première étant sensible à la casse, pas la seconde !
Attention, au namespace (nom de l'unité)
Pour D7 et plus
System.Pos
StrUtils.PosEx
StrUtils.ContainsText
A partir de 2009, il y a des variantes dans AnsiStrings et WideStrings car les fonctions par défaut sont en Unicode !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
L'unité system est-elle déclarée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 IF POS (chaine a rechercher, chaine source) > 0 THEN // vrai ELSE // Faux![]()
Merci d'ajouter unsur les tags qui vous ont aidé
Merci beaucoup pour vos réponses!! Je teste une méthode et ej regarderais le reste après!!
Bonne journée!!
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Je pense qu'il a mis un mauvaise namespace devant Pos !
string.pos n'existe pas comme namespace pour Pos qui est présent dans System, AnsiStrings et WideStrings
Si il consulte l'aide de Delphi 2009, XE ou XE2, celle que l'on trouve en ligne, on peut tomber sur System.UnicodeString, effectivement en C++Builder le type String (implicitement UnicodeString) est un objet en allocation statique, dans cette page, il n'y a pas une spécification que c'est uniquement du C++, cela peut embrouiller les débutants qui utilise Delphi pensant que l'on peut utiliser le type string comme une classe (classique si l'on a fait du Java avant par exemple)
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Bon ca semble fonctionner mais par contre j'ai une exception et une erreur, que je n'arrive pas à comprendre...J'utilise par la suite des expressions régulières et j'obtiens l'erreur "classe d'exception EOleexception avec message ErreurOLE 800A139D"
et par la suite un Invalid Range in character set
Code : Sélectionner tout - Visualiser dans une fenêtre à part mc := RegExpExi.Find(varToStr(p_OLEApp.Selection.Text));
800A139D
8 = Error
A = Control
139D = 5021 = ERROR_NOT_QUORUM_CAPABLE
C'est ce que j'ai aussi dans mon winerror.h de C++BuilderERROR_NOT_QUORUM_CAPABLE
5021 (0x139D)
The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource.
Va comprendre ce que cela signifie exactement ?
RegExpExi a-t-il un rapport avec RegularExpressions.TRegEx, c'est une nouveauté en XE2 ?
Ou est-ce un IRegex de "Microsoft VBScript Regular Expressions 5.5"
Voir si il n'y a pas un soucis de conversion Variant en AnsiString\UnicodeString !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
RegExpExi est de type IRegex
Essaye Variants.VarToWideStr
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mc := RegExpExi.Find(VarToWideStr(p_OLEApp.Selection.Text));
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager