Filtrer des caractères dans une chaine

leptidev Messages postés 206 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 décembre 2007 - 8 mai 2002 à 12:39
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 - 8 mai 2002 à 14:04
Bonjour, je voudrais savoir comment on peut récupérer la position d'un caractère non alphabétique dans une chaine, par exemple :

setPosition("azerty;")

retournerai la position du ";" soit 6.

Merci d'avance .......

3 réponses

Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
8 mai 2002 à 12:43
Salut,

Position= InStr(1, "azerty;", ";")

Position aura la valeur 7 (et non 6 comme tu le dis).

Tchao

NéoB
0
leptidev Messages postés 206 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 décembre 2007
8 mai 2002 à 12:49
Heu, ça c'était juste un exemple, moi je veux avoir la position de tout caractère qui n'est pas abcderfghijklmnopqrstuvwxyz.
Je vais pas m'amuser à tout rentrer non ?
0
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
8 mai 2002 à 14:04
Salut,

Ce code créé un tableau contenant les positions de chaque caractère non alphabétique dans une chaine. Le code ne considére pas les caractères accentués comme des caractères alphabétiques...

Tu peux coller tel quel le code dans ton formulaire.

Dim StrAlpha As String
Dim TabPos() As Long
Dim Offset As Long
Dim CurAsc As Long
Dim i As Long

Me.AutoRedraw = True

StrAlpha = "'aze<rty;"

For Offset = 1 To Len(StrAlpha)

CurAsc = Asc(Mid$(StrAlpha, Offset, 1))

If (CurAsc < 97 Or CurAsc > 122) Then
If (CurAsc < 65 Or CurAsc > 90) And CurAsc Then
i = i + 1
ReDim Preserve TabPos(i)
TabPos(i) = Offset
End If
End If

Next Offset

For i = 1 To UBound(TabPos)
Me.Print "Pos " & Format(TabPos(i), "00") & " --> " & Mid$(StrAlpha, TabPos(i), 1)
Next i

Tchao

NéoB
0
Rejoignez-nous