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 Pascal Discussion :

[LG]comparaison de chaines de caracteres


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [LG]comparaison de chaines de caracteres
    j'un petit probleme
    ce que je voudrai savoir c est ce que je peut comparer deux chaines de caratères directement ou est ce qu'il y a une procedure standard qui effectue l'operation
    ou bien est ce que je suis obliger de comparais caractere par caractere(comparer les 2 codes ascii).
    merci d'avance

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Avec une petite recherche, et d'une sur le forum, et de deux dans l'aide de TP7, tu aurais pu découvrir la fonction Pos...

    Maintenant, Pos ne sera peut-être pas suffisante, et si tu veux connaître le premier caractère qui diffère d'une chaîne à l'autre, alors il te faudra analyser la chaîne caractère par caractère, avec une indexation de type tableau, comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
     S, T: string;
      i, L: Byte;
    begin
    S := 'ABCDEF';
    T := 'ABCD1F';
     
    if Length(S) <= Length(T) then L := Length(S)
    else L := Length(T);
     
    for i := 1 to L do
      if S[i] <> T[i] then Write(i:3);
    end.
    Ce programme va comparer les premiers caractères des deux chaînes et afficher à l'écran la position des caractères qui différent.

    A+

  3. #3
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Pour comparer des chaînes de caratères selon l'ordre alphabétique, tu peux utiliser les comparaisons classiques >,<>=,<=,=,<>.
    Ainsi 'abc'<'fgh' !!
    a+

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Attention lors de l'utilisation des opérateurs de comparaison des caractères. Si le programme doit être porté plus tard sur un autre système d'exploitation (comme Windows ou bien Linux), alors les tests pourraient devenir faux lors de la comparaison majuscule / minuscule.

    Il vaut donc mieux convertir tes châines tout en majuscule ou bien minuscle avant la comparaison, car si sous Dos A < a, sous Windows, on a a < A...

    A+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    moi, mon probleme en fait c que j'ai un tp sur les fichiers, ou je doit effectuer des recherche d'individus par exemple.
    et cette recherche dois etre effectuer a l'aide de clés secondaire ;recherche par nom par exemple (recherche sequentiel dans un fichier)
    et c'est la ou reside mon probleme c que je dois comparer ma clé (nom par exemple) au autre afin de trouver les resultats ede ma recherche.
    donc ma question est celle ci :
    comment effectuer une comparaison entre les chaine de caractères mais une comparaison qui se limite juste a savoir si les 2 chaines sont similaires ou pas(le nom est une chaine de caractères). :
    merci d'avance

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 446
    Points
    59 446
    Billets dans le blog
    2
    Par défaut
    Salut !

    Il me semble que Wormful_Sickfoot et HDD34 t'ont donné chacun la moitié de la solution :
    1. Transformer les deux chaînes à comparer en majuscules ou en minuscules;
    2. Tester l'égalité à l'aide du "=".

    Ou alors, si ton problème réside ailleurs, pourrais-tu être plus clair ?

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Voilà, l'esprit synthétiseur d'Alcatîz aura bien résumé les choses !!
    A noter que pour les comparaisons d'égalités tu n'as pas besoin de transposer les caractères en majuscules ou minuscules, car la comparaison d'égalité ne dépend pas de l'ordre alphabétique.
    a+

Discussions similaires

  1. [AC-2003] requete comparaison resemblance chaine de caractere dans un champs d'une table
    Par alexkickstand dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/11/2009, 08h35
  2. [VBA/EXCEL]comparaison de chaine de caractere avec ou sans espace
    Par rodrigue62 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2007, 10h48
  3. comparaison entre chaines de caracteres
    Par Mpierre dans le forum Oracle
    Réponses: 2
    Dernier message: 22/06/2006, 23h21
  4. [VBA]excel comparaison de chaine de caractere
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2006, 15h32
  5. comparaison de chaines de caracteres en PLSQL
    Par biozaxx dans le forum PL/SQL
    Réponses: 3
    Dernier message: 19/08/2004, 09h41

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