vbnino
Messages postés218Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention11 juillet 2010
-
16 juin 2007 à 18:33
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 2007
-
17 juin 2007 à 15:30
Salut!
-Par exemple j'ai dans une RichtextBox : "aaazeerddfe
zeerdfaz
ezaerzsdz"
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 17 juin 2007 à 14:59
' TEST
Dim searchpattern As String = "z" ' la chaine recherchée
Dim indices(0) As Integer
Dim saveindices(0) As Integer
Dim sbase As String = "zrqat,zskska^zz"
Dim s As String = sbase
While s.Contains(searchpattern)
indices(UBound(indices)) = s.IndexOf(searchpattern)
Array.ConstrainedCopy(indices, 0, saveindices, 0, indices.Length)
s = s.Substring(s.IndexOf(searchpattern) + 1)
ReDim indices(indices.Length)
Array.ConstrainedCopy(saveindices, 0, indices, 0, saveindices.Length)
ReDim saveindices(saveindices.Length)
End While
A la fin tu récupères le tableau indices dotn la dernière valeur du tableau est inutilisée(je sais pas pourquoi)
en fait à chaque redim le tableau perds les valeurs donc dans la boucle les tableaux se repassent es valeurs avant de les perdres ce qui fait que ca les gardes.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 17 juin 2007 à 15:10
Pardon je corrige car les indices était relatif au s et pas sbase donc :
' TEST
Dim searchpattern As String = "z" ' la chaine recherchée
Dim indices(0) As Integer
Dim saveindices(0) As Integer
Dim sbase As String = zrqat,zskska^zz ' chaine où rechercher
Dim s As String = sbase
While s.Contains(searchpattern)
If indices.Length > 1 Then
indices(UBound(indices)) = sbase.IndexOf(searchpattern, indices(UBound(indices) - 1) + 1)
Else
indices(UBound(indices)) = s.IndexOf(searchpattern)
End If
Try
Array.ConstrainedCopy(indices, 0, saveindices, 0, indices.Length)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
s = s.Substring(s.IndexOf(searchpattern) + 1)
ReDim indices(indices.Length)
Array.ConstrainedCopy(saveindices, 0, indices, 0, saveindices.Length)
ReDim saveindices(saveindices.Length)
End While
Redman
Vous n’avez pas trouvé la réponse que vous recherchez ?
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 17 juin 2007 à 15:30
Désolé de poster si vite mais comme je suis en forme et serviable aujourd'hui je te passe aussi le code avec expressions régulières :
' TEST
Dim searchpattern As String = z ' la chaine recherchée
Dim inputtext As String = "zrqat,zskska^zz"
Dim reg As New System.Text.RegularExpressions.Regex(searchpattern)
Dim indices(reg.Matches(inputtext, searchpattern).Count) As Integer
Dim nb = 0
For Each m As System.Text.RegularExpressions.Match In reg.Matches(inputtext, searchpattern)
indices(nb) = m.Index
nb += 1
Next
P.S : dans le code précedent j'avais oublié les "" des fois.