Fonction remplace (manque dans access par ex.)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 353 fois - Téléchargée 36 fois

Contenu du snippet

'fonction rapide car récursive . petit exercice de récurs en plus ;)

Source / Exemple :


function remplace(text,quoi,par) 'function récursive : "quoi" est remplacé "par" dans "text"
dim avant, après 'se qui se trouve avant et après "quoi" dans "text"
if instr(text,quoi)<>0 then 'vérifie si la récursivité est utile, soit s'il on a de "quoi" remplacer "par"
avant=mid(text,1,instr(text,quoi)-1)
après=mid(text,instr(text,quoi)+len(quoi))
après=remplace(après,quoi,par)
remplace = avant & par & après 'c'est ici que l'on remplace "quoi" contre "par"
else
remplace = text 'fin de la récursivité, retourne le texte tel quel
end if
end function

Conclusion :


vla c tout court! :P

A voir également

Ajouter un commentaire Commentaires
Messages postés
6
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
26 janvier 2005

Oui mais il a quand meme une forme d'itération je pense puisque la méthode s'auto incémente ??
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
remplace2 s'appelle elle meme, il y a donc recursivite.
Messages postés
6
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
26 janvier 2005

Function remplace2(Text, quoi, par, resultat) 'mettre "" pour resultat lors de l'appel de la methode
If InStr(Text, quoi) <> 0 Then
remplace2 = remplace2(Mid(Text, InStr(Text, quoi) + Len(quoi)), quoi, par, resultat & Mid(Text, 1, InStr(Text, quoi) - 1) & par)
Else
remplace2 = resultat & Text
End If
End Function

Est-ce que ça c'est itérarif ??? (ca marche j'ai essayé)
Messages postés
55
Date d'inscription
mercredi 31 juillet 2002
Statut
Membre
Dernière intervention
19 novembre 2004

cool, pile poil ce que je cherchais
très simple et qui marche bien, rien à redire
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Petite rectif mais importante:
Remplacer 'rapide car récursive'
par 'LENTE car récursive'.
La recursion est toujours plus lente que l'iteration, empilage et desempilage des parametres oblige.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.