Probleme compter combien de chaines de 16 chiffres y a dans un texte
arnohoho
Messages postés77Date d'inscriptionmercredi 17 septembre 2003StatutMembreDernière intervention24 août 2005
-
7 mars 2004 à 16:07
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
8 mars 2004 à 09:54
'voila je veux sauver un une chaine de 16 chiffre pas plus ni
'moins donc mon code verifie le comptenu chaque fois qu'il
'rancontre un chiffre il la stock dans puk (variable)
'mais lorsqu'il
'rencontre un caractère autre qu'un chiffre puk revient a
'vbnull losque len(puk) = 16 il l'enregistre dans un fichier
'ini mais il ne faut pas qu'il soit plus long que 16
'PS le text est dans un richtextbox et dans des cadre comme
'dans exel
Function sauvernumero()
Dim puk
Dim plouk
inscris = 0
chiffre = 0
space = 0
For i = 1 To Len(Form1.RTB.Text) Step 1 'no comment
tableau(i) = Mid(Form1.RTB.Text, i, 1)
Select Case tableau(i)
Case "a" To "z", "A" To "Z", "é", "ê", "ë", "à", "â", "ä", "î", "ï", "ç", "ù", "û", " ", "?", "!", ".", "`", "Z", "'", ""","
puk = vbnull
If Len(plouk) = 16 Then
inscris = inscris + 1
Form1.Label1.Caption = inscris
Form1.Label2.Caption = puk
EcrireINI "numero", Form1.Label1.Caption, Form1.Label2.Caption
Form1.Caption = inscris
Form1.Label1.Caption = "total"
Form1.Label2.Caption = inscris
EcrireINI "nombre", Form1.Label1.Caption, Form1.Label2.Caption
Form1.Caption = inscris
puk = vbnull
plouk = vbnull
End If
End Select
If tableau(i) "0" Or tableau(i) "1" Or tableau(i) = "2" Or tableau(i) = "3" Or tableau(i) = "4" Or tableau(i) = "5" Or tableau(i) = "6" Or tableau(i) = "7" Or tableau(i) = "8" Or tableau(i) = "9" Then
puk = puk & tableau(i)
plouk = vbnull
If Len(puk) = 16 Then
plouk = puk
End If
End If
Next i
End Function
'merci de votre aide
A voir également:
Probleme compter combien de chaines de 16 chiffres y a dans un texte
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 8 mars 2004 à 09:54
Les expressions régulières sont faites pour ton problème. Je pense que le code ci dessous (tapé rapidement et pas vérifié)doit corriger ton problème ...
' IMPORTANT
' Référence : Microsoft VB Scripts Regular Expressions 5.5
Sub extraire(chaineATraiter As String)
dim FORMAT_RECHERCHE as RegExp
dim MATCHES, MATCH as Object
dim result as string
set FORMAT_RECHERCHE = New RegExp
FORMAT_RECHERCHE.pattern = "[^0-9][0-9]{16}[^0-9]"
set MATCHES = FORMAT_RECHERCHE.Execute(chaineATraiter)
for Each MATCH In MATCHES
If Len(MATCH.Value) = 18 Then
result = MATCH.Value
msgBox mid(result, 2, len(result) - 2)
end if
next
end sub
private sub Command1_Click()
MsgBox extraire("erzrze1234567890123456£f")
end sub
Explication du pattern : "Un caractère qui n'est pas un chiffre, suivi par 16 chiffres puis un caractère qui n'est pas un chiffre"