Bonjour,
Connaissez-vous une fonction SAS qui compare deux chaînes de caractères, caractère par caractère, et qui retourne le nombre de caractères pareils ou différents.
La fonction Complev n'est pas tout à fait ce que je recherche.
Merci!
Bonjour,
Connaissez-vous une fonction SAS qui compare deux chaînes de caractères, caractère par caractère, et qui retourne le nombre de caractères pareils ou différents.
La fonction Complev n'est pas tout à fait ce que je recherche.
Merci!
Bonjour,
Je ne connais pas une telle fonction, mais voici un macro-programme qui devrait aider...
Bon courage !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 %macro communelt (mvstring1,mvstring2) / des='Rend un string des caractères identiques aux mêmes positions' ; %local resultat mvmax ; %let mvmax = %length(&mvstring1) ; %if &mvmax > %length(&mvstring2) %then %do ; %let mvmax = %length(&mvstring2) ; %end ; %do i=1 %TO &mvmax ; %if %substr(&mvstring1,&i,1) = %substr(&mvstring2,&i,1) %then %do ; %let resultat = %sysfunc(cats(&resultat,%substr(&mvstring1,&i,1))) ; %end ; %end ; &resultat /* Test : %communelt (abcd,efcghijk) ; */ %mend communelt ;
Bruno
Bonjour.
Il y a aussi la fonction COMPARE qui peut rendre service, mais elle ne fait pas exactement ce que tu veux, je crois. Sinon, on peut aussi reprendre la solution de Bruno, mais pas forcément en langage macro : on peut faire ça dans une étape Data, avec le même principe de SUBSTR, de LENGTH et de boucles, mais sans les % partout.
Olivier
Bon courage.
Olivier
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