1/suppression d'un caractère dans une chaîne - 2/ comparaison de deux chaines de

guig - 17 août 2001 à 23:40
 oliver68 - 20 août 2001 à 12:39
1/ comment faire pour supprimer un caractère dans une chaine
de caractères.
Ex : Une phrase se termine par un point.
JE SOUHAITE SUPPRIMER TOUS LES E.

2/ J'ai deux chaînes de caractères, je dois les comparer
Elles sont équivalentes si elles ont les mêmes lettres
dans le même ordre mais avec un nombre de caractères qui
peut différer entre les deux phrase.
Ex : abbcccdeeeffg
et aabcdefffg

2 réponses

Salut,

1) pour enlever tes "e"
Sub enleve()

letexte = "une phrase se termine par un point."
longueur = Len(letexte)
For i = 1 To longueur
If Mid$(letexte, i, 1) = "e" Then

If i = 1 Then
letexte = Mid$(letexte, 2, longueur - 1)
End If

If i > 1 Then
letexte = Mid$(letexte, 1, i - 1) & Mid$(letexte, i + 1, longueur - i)
i = 1
End If

Next i
End Sub

2) pour comparer comme tu veux tes 2 string , je pense qu il faut dans un premier temps les "réduire à l'essentiel" et ensuite les comparer :

Sub compare()

text1 = "aaabbcccddeeffgg"
text2 = "abcccdddeefg"
i = 0
longueur1 = Len(text1)
longueur2 = Len(text2)

firstcar = Mid$(text1, 1, 1)
newtext1 = newtext1 + firstcar

For i = 1 To longueur1
othercar = Mid$(text1, i, 1)

If othercar <> firstcar Then
newtext1 = newtext1 + othercar
firstcar = othercar
End If
Next

secondcar = Mid$(text2, 1, 1)
newtext2 = newtext2 + secondcar

For i = 1 To longueur2
othercar2 = Mid$(text2, i, 1)

If othercar2 <> secondcar Then
newtext2 = newtext2 + othercar2
secondcar = othercar2
End If
Next

If newtext1 = newtext2 Then MsgBox ("pareils") Else MsgBox ("pas pareils")

End Sub

il y a petre plus simple, mais ça marche. Qu en penses tu ?

@+
0
j ai loupé un END IF pour le 1) avant NEXT i
0
Rejoignez-nous