Manipulation de caractères

Bonjour

explication de la première avec un correctif logique

'si les espaces sont a prendre en compte
Function NoDoBen(v As String)
    Dim x1%, x2%
    'x1=la position de depart de la chaine" do"(do avec un espace devant)
    x1 = InStr(1, v, " do")
    'x2=la position de depart de la chaine"ben "(ben avec un espace après)
    x2 = InStr(x1, v, "ben ")
     'a supprimer 'If x1 + x2 <> x1 Then NoDoBen = Replace(v, Mid(v, x1, x2 + 4 - x1), " ")
    'correctif 
    If (x1 + x2) <> x1 and x1 < x2  Then NoDoBen = Replace(v, Mid(v, x1, x2 + 4 - x1), " ")

'1° If (x1 + x2) <> x1 and x1 < x2 -->si la position de do +la position de ben <> de la position de do alors on a les deux
'2° and x1 < x2'-->si la position de do est plus petite que la position de ben alors alors c'est dans l'ordre (on évite les ben...do)
'3° Mid(v, x1, x2 + 4 - x1) --> partie de v démarrant  à la position de x1et allant jusqu"a la position de x2+les 4 caractères de "ben " moins la position de x1 qui est " do"
4° replace donc cette partie par un espace 
End Function

@PatrickT, cela ressemble bien à ma réponse de dimanche matin

Bonjour Bsalv

Oui et non tu fait une boucle inutilement

les boucle sur instr c'est pour chercher la même expression qui se répète ou un array d'expressions plus long

ici on a deux instr à faire x1 et x2 terminé

si x1>0 et x2>0 et x1<x2 then

Ps :tu a vu ce que j'ai proposé pour l'horloge ou tu sais

A tous recevez mes remerciements

paterbleutch

Rechercher des sujets similaires à "manipulation caracteres"