Séparation de chiffres et lettres

Résolu
ShiZZle971 Messages postés 21 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 20 décembre 2007 - 8 janv. 2007 à 16:17
ShiZZle971 Messages postés 21 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 20 décembre 2007 - 8 janv. 2007 à 19:46
Salut,
Je fais un logiciel et j'aurais besoin de pouvoir trier une chaine de caractère c'est à dire qu'il me faut savoir où sont les lettres.
Exemple : j'ai un code "512M" , il me faudrait récupérer le "M" dans une variable.
Ex. 2 : "38444P58" , idem je dois récupéré le "P"

Merci.

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 janv. 2007 à 16:35
Salut,
Ceci est un petit exemple en VB6 mais je pense qu'il est facilement transposable en .NET

Private Sub Form_Load() 
Dim Chaine As String 
Chaine =  "512M" 
MsgBox GetLettre(Chaine) 
Chaine = "38444P58" 
End Sub 

Private Function GetLettre(ByVal StrChaine As String) As String 
Dim Cara As String 
Dim i As Integer 
    'Boucle sur chaque caractere de la chaine
    For i = 1 To  Len (StrChaine) 
        'Isole le caractere
        Cara  = Mid(StrChaine, i, 1) 
        'TEste si le caractere est numerique
        If Not IsNumeric(Cara) Then 
            'Retourne le premier caractere non numérique
            GetLettre = Cara 
            Exit For 
        End If 
    Next 
End Function 

@+: Ju£i?n
Pensez: Réponse acceptée
3
Claude669 Messages postés 23 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 29 janvier 2013
8 janv. 2007 à 16:43
Bonjour
Il y a peu etre plus élégant mais tu peux essayer ça

Dim Valeur As string
Dim Car As String
Dim I as integer

Valeur = "38444P58"
For I= 1 To Len(Valeur)
    If Not IsNumeric(Mid(Valeur,I, 1)) Then Car = Mid(Valeur, I, 1): Exit For
Next I
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 janv. 2007 à 16:43
Ou je pense que c'est un bon cas pour utiliser les expressions régulières.

Je maitrise pas assez, mais si un spécialiste passe par ici ......

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 janv. 2007 à 16:55
Private Sub Command1_Click()
  toto = "38444P58"
  MsgBox Left(Mid(toto, Len(Str(Val(toto)))), 1)
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 janv. 2007 à 16:58
Ah...
Mais si ça commence par un 0 ? On l'aurait "in the baba !" !

Alors, vite une parade :

Private Sub Command1_Click()
  toto = "08444P58"
  toto = "1" & toto
  MsgBox Left(Mid(toto, Len(Str(Val(toto)))), 1)
End Sub

signé le cinglé !
0
ShiZZle971 Messages postés 21 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 20 décembre 2007
8 janv. 2007 à 19:46
Merci beaucoup les gars
0
Rejoignez-nous