IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[chaine de caractere] pos


Sujet :

Delphi

  1. #1
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut [chaine de caractere] pos
    Bonjour,

    J'ai problème quand je recherche une sous chaine dans une chaine quand les chaines n'ont pas la meme casse (ou les memes accentuations).
    Par exemple, si j'ai la chaine: "UTILISE" et que je veux chercher "utilisé",
    je veux avoir que ces 2 chaines soient les mêmes.
    Quelqu'un a-t-il un code ou connait une fonction (sans passer par les expressions régulieres).

    D'avance merci.
    Si j'ai paru trouver sans chercher c'est que j'ai longtemps cherché sans trouver!

    http://taslimanka.developpez.com

  2. #2
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    tu peux les transformer en majuscule pour le test avect la fonction UpperCase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UpperCase('utilisé') = UpperCase('UTILISE')
    Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Yop !

    Il se trouve que les majuscules accentuées m'intéressent, j'ai donc testé pour vous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(UpperCase('utilisé'));
    retourne UTILISé,

    C'est pas gagné, et c'est pas beau !
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    tu peux utiliser l'unité FastStrings, elle contient entre autre une fonction FastPosNoCase

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    AnsiLowerCase et AnsiUpperCase viennent à bout des caractères accentués.

  6. #6
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut
    Malheureusement ca ne me convient pas parce si j'ai "brulure" et "brûlure"
    (l'un accentué et l'autre pas accentué),
    apparemment UpperCase('brulure') <> UpperCase('brûlure').
    Y'a il un autre bout de code.
    Merci.
    Si j'ai paru trouver sans chercher c'est que j'ai longtemps cherché sans trouver!

    http://taslimanka.developpez.com

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 422
    Points : 5 822
    Points
    5 822
    Par défaut
    salut

    essai avec AnsiContainsText

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Sur le fond, le raisonnement est discutable parce que s'il faut tenir compte des fautes d'orthographe, cela s'arrête où ?
    La norme, c'est d'écrire brûlure, utilité, océan... et non brulûre, utilitè ou osèan.

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Yop !

    Bien vu, Defluc, le AnsiUpperCase !
    - - -
    l'un accentué et l'autre pas accentué
    il s'agit donc de deux mots différents !
    Exemple célèbre : les enfants légitimes de Louis XIV, et les enfants légitimés de Louis XIV, ce ne sont pas les mêmes !
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut

    Perso, je ferais ceci afin de garantir la pertinence du résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      chaine:=stringreplace(chaine,'à','A',[rfReplaceAll]);
      chaine:=stringreplace(chaine,'é','E',[rfReplaceAll]);
      chaine:=stringreplace(chaine,'î','I',[rfReplaceAll]);
    etc...
    Mais il y a peut-être une autre solution, moins "artisanale"
    Choisir, c'est renoncer...

  11. #11
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Salut, OutOfRange !

    Euh, désolé de troller, mais j'ai pas compris ton post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine:=stringreplace(chaine,'é','E',[rfReplaceAll]);
    Ça veut dire que tu remplaces é par E ? Et donc è par E aussi, alors ?
    Et donc modèle et modelé deviennent MODELE ?
    Mais ca n'est pas pareil : ce ne sont pas les mêmes mots !
    Quelquechose m'échappe, là, d'autant plus que la méthode de Defluc fonctionne impec...
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  12. #12
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je renforcerais la prise de conscience de l'importance de l'orthographe pour le sens des nuances qu'elle peut apporter plutôt que de tenter par programme de ramener tous les mots à un commun dénominateur pour le moins commun.
    Un programme qui donnerait des résultats aux mauvais élèves mais pas aux bons ... Il ne manquerait plus cela...
    Mais peut-être est-ce un autre débat ?

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Je renforcerais la prise de conscience de l'importance de l'orthographe pour le sens des nuances qu'elle peut apporter plutôt que de tenter par programme de ramener tous les mots à un commun dénominateur pour le moins commun.

    + 25318 !

    Mais peut-être est-ce un autre débat ?
    Pas sûr, pas sûr...
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut Jipété

    Citation Envoyé par Jipété
    Euh, désolé de troller, mais j'ai pas compris ton post
    C'est parce que t'as pas lu celui de mohamed
    Citation Envoyé par mohamed
    Par exemple, si j'ai la chaine: "UTILISE" et que je veux chercher "utilisé",
    je veux avoir que ces 2 chaines soient les mêmes.
    mohamed ne veut pas transformer des minuscules accentuées en majuscules accentuées (ce que fait AnsiUpperCase), mais supprimer les accents...

    De plus, perso, j'éviterais de porter un jugement de valeur (mais si c'est ce que tu fais) sur les intentions de mohamed par rapport aux respect ou non des règles orthographiques.
    On sait juste qu'il veut faire une recherche sur des mots en faisant abstraction des accents, on ne connaît pas la finalité de son prog ni le contexte dans lequel il va l'utiliser.
    Et pour tout dire, cela ne nous regarde pas. Contentons nous de l'aider du mieux possible sur le plan technique. On est sur un forum informatique ici, pas à l'académie française...

    Bonne prog mohamed
    J'espère que les infos recueillies t'aideront à résoudre ton pb
    Choisir, c'est renoncer...

  15. #15
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par OutOfRange
    Et pour tout dire, cela ne nous regarde pas. Contentons nous de l'aider du mieux possible sur le plan technique. On est sur un forum informatique ici, pas à l'académie française...

    Bonne prog mohamed
    J'espère que les infos recueillies t'aideront à résoudre ton pb
    +20000000
    ni dont un débat religieu (moi aussi je m'apel mohammed)
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  16. #16
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Et si Mohamed se prononçait sur le but qu'il poursuit en cherchant à convertir ses mots en majuscules...

    Même si cela ne nous regarde effectivement pas, il y a de forte chance que cela soit pour rechercher un mot dans un texte, qu'il soit en majuscule ou en minuscule. Et il ne serait certainement pas satisfait si son programme lui retournait un autre mot que celui recherché.

    C'est pourtant ce qui se passerait suivant les exemples donnés par Jipété :
    je cherche "modèle" et le programme me trouve "modelé", mot qui n'à rien à voir.
    Et on pourrait multiplier les exemples

  17. #17
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Citation Envoyé par defluc
    [...]
    C'est pourtant ce qui se passerait suivant les exemples donnés par Jipété :
    je cherche "modèle" et le programme me trouve "modelé", mot qui n'à rien à voir.
    Et on pourrait multiplier les exemples
    Certes, et si tel est le cas, peut-être qu'une sous-procédure pourrait alors entrer en jeu afin de montrer les "mots approchants" ; auquel cas, cela serait plus présentable et satisfaisant au niveau progr.

    Enfin, telle est mon approche perso du problème

    Mes 3 cts

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Réponses: 13
    Dernier message: 13/06/2003, 14h13
  3. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58
  4. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo