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

Langage Delphi Discussion :

Teste si 2string sont identiques sur la même longueur.


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 342
    Points : 123
    Points
    123
    Par défaut Teste si 2string sont identiques sur la même longueur.
    Bonjour,

    Je cherche un moyen de faire le code ci dessous. il y a je pense plusieurs façon de le faire, et c'est pour cela que je me permet de vous demander pour connaitre la meilleur (ou si une function existe).

    Comparer 2 string si ils sont identiques pour le même nombre de caractères.

    Compare('valeur1','valeur1detest'); //Ok car les 6 1ere caractère sont identique

    Compare('valeur','testsur la valeur');//pas ok car les 5 1ere caractères ne sont pas identique

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    Bonjour,

    essaye avec la fonction Pos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if pos( 'Valeur', MaChaine) = 1 then ...
    @++
    Dany

  3. #3
    Membre du Club

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Regarde aussi du coté de


    function CompareStr(const S1,S2:string):Integer;

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Plus rapide qu'un Pos et plus simple que refaire la comparaison caract par caract en asm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if 'valeur1' = Copy('valeur1detest', 1, Length('valeur1')) then
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    ou bien une petite fonction avec des pointeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function commencentPareil(const s1, s2 : string) : boolean;
    var
      p1, p2 : PChar;
    begin
      p1 := PChar(s1);
      p2 := PChar(s2);
      // une (et une seule) des chaines est vide, on renvoie false
      if (p1^ = #0) xor (p2^ = #0) then
        result := false
      else
      begin
        while (p1^ <> #0) and (p2^ <> #0) and (p1^ = p2^) do
        begin
          inc(p1);
          inc(p2);
        end;
        result := (p1^ = #0) or (p2^ = #0);
      end;
    end;
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/02/2012, 20h35
  2. Bouclage/test d'objets sur la même liste
    Par kululu dans le forum Général Java
    Réponses: 3
    Dernier message: 07/07/2010, 21h25
  3. Réponses: 1
    Dernier message: 05/03/2009, 17h44
  4. Réponses: 3
    Dernier message: 15/01/2006, 18h44
  5. 2 ActiveX identique sur une même fenêtre ?????
    Par cathar_rhythm dans le forum MFC
    Réponses: 3
    Dernier message: 14/11/2005, 20h21

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