Détection de caracteres

Résolu
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 4 oct. 2007 à 23:42
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 10 oct. 2007 à 20:36
Bonjour à tous,
Je voudrais savoir si il était possible de détecter la présence de caractéres spéciaux dans une RichTextBox et dans une ListBox. (par exemple des "é", des "à"...)
Merci d'avance.

9 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 oct. 2007 à 08:23
Salut,
Je dirais que c'est parce que la méthode Find ne te retourne pas un Booleen mais la place de la première occurrence d'un caractère cherché.

Et si elle ne trouve pas elle te retourne -1, Hors True = -1 voila pourquoi tu croyais que c'était inversé.

Essaie ceci pour t'en convaincre.

;   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim j As String = "é"
        Dim Result As Integer = RichTextBox1.Find(j)
        If Result >= 0 Then
            MessageBox.Show("Trouvé " & Result.ToString)
        Else
            MessageBox.Show("Non" & Result.ToString)
        End If
    End Sub, ----
(Coloration syntaxique automatique par Kenji)

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 oct. 2007 à 08:42
Salut,
Hélas il semble qu'en .NET la méthode .SPAN est disparue...

J'ai trouver ceci sur le net mais je ne sais pas encore l'adapter:

IL faut récupérer l'interface ITextDocument de ton RichTextBox et appeler la méthode  Selection.Expand(tomWord), regarder la documentation MSDN pour l'interface ITExtDocument

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 oct. 2007 à 02:46
Salut
Oui, avec un .Find
Regarde dans l'aide, c'est tout expliquer comment retrouver des lettres parmi une liste.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
5 oct. 2007 à 07:32
Salut
J'ai cherché et j'ai trouvé ceci:

Dim instance As RichTextBox

Dim str AsString
Dim returnValue AsInteger

return
Value = instance.Find(str)

J'ai donc fait un petit truc pour voir comment ça marche avec un bouton et une richtextbox:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim j As String
        j = "é"
        If RichTextBox1.Find(j) = True Then
            MessageBox.Show("Trouvé")
        Else
            MessageBox.Show("Non")
        End If
    End Sub
End Class

Et là surprise, quand je tape un é dans la richtextbox, j'obtient le message "non" et quand je tape rien j'obtiens "trouvé" !
Pourquoi c'est inversé ?!
Merci
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 oct. 2007 à 15:10
C'est écrit dans l'aide de la fonction .Find, suffit de lire :
"Cette version de la méthode Find recherche la première occurrence d'un caractère d'une liste de caractères spécifiés dans le paramètre characterSet et retourne sa position"
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
9 oct. 2007 à 21:55
Slt,
Merci beaucoup jrivet.
Ton code marche super bien. Maintenant, je voudrais juste colorer le mot qui contient le "é" en rouge. J'utilise RichTextBox1.SelectionStart pour séléctionner le texte, mais je ne sais pas comment faire pour attraper le début du mot. Et pour la fin, je suppose, qu'il suffit de repérer un espace non ?
Merci d'avance.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 oct. 2007 à 23:20
Avec la méthode .Span
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
10 oct. 2007 à 07:10
Slt
J'ai fait de petites recherches abec le mot Span, sur le net, dans le forum et dans l'aide en ligne de VB et ça n'a rien donné !
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
10 oct. 2007 à 20:36
Ok merci bien, je vais me documenter sur le sujet...
0
Rejoignez-nous