[..] Comparer 2 variables

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ethneldryt
Status : Hors ligne

[..] Comparer 2 variables

#1

Message par ethneldryt »

Bonjour, je demande car je ne trouve pas de fonction string pour faire cela.

$var1 = "ABCDE"
$var2 = "ACDE"

Il y a 2 vars, dans la deuxième, il y a le B en moin, je cherche donc a afficher ce qui a disparue, du genre :

$resultat = fonction("ABCDE","ACDE")

La variable $resultat contiendrai "B".
Merci
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Comparer 2 variables

#2

Message par jchd »

Si tu ne tiens compte que des suppressions de lettres, c'est éventuellement jouable avec une ou plutôt des regexp.
Par contre si tu envisage toutes les possibilités (manque, ajout, échange, interversion) alors là je te conseille d'étudier la fonction ci-dessous et de l'adapter à ton besoin particulier. Désolé pour mes commentaires en anglais.

D'une manière générale, la comparaison de chaînes est un problème complexe.
► Afficher le texte
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
ethneldryt
Status : Hors ligne

Re: [..] Comparer 2 variables

#3

Message par ethneldryt »

Salut et merci. en effet, il y aura qu'une lettre qui disparaitra a chaque fois, mais je ne sais comment faire.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Comparer 2 variables

#4

Message par sylvanie »

Dans ce cas on peut envisager ceci
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Comparer 2 variables

#5

Message par jchd »

Attention sylvanie, tu éjectes un _set_ de la chaîne sujet. Tu présupposes qu'il n'y a pas de répétition possible dans l'entrée, ce qui n'est pas forcément adapté dans le cas présent.

Code : Tout sélectionner

$var1 = "ABCADE"
$var2 = "ABCDE"
et la suppression du second A de $var1 passe inaperçue. Oooups ou pas, c'est à ethneldryt de le dire.
Sinon, on fait ça :

Code : Tout sélectionner

ConsoleWrite('On a perdu un ' & yaplus('ABCABCDEF', 'ABCBCDEF') & @LF)

Func yaplus($sRef, $sTest)
    Local $sMatch, $iLen = StringLen($sTest)
    For $i = 1 To $iLen
        If StringLeft($sRef, $i) <> StringLeft($sTest, $i) Then ExitLoop
    Next
    Return StringMid($sRef, $i, 1)
EndFunc
 
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Comparer 2 variables  

#6

Message par sylvanie »

Tout à fait d'accord.
D'après ce qui était exposé, j'avais effectivement compris que les chaînes ne comportaient pas de répétition.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Comparer 2 variables

#7

Message par jchd »

Tu sais, à mon âge avancé de soixantenaire aigri je suis presque liquide et devenu méfiant de tout :mrgreen:
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre