Détection de caracteres

[Résolu]
Signaler
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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)
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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"
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

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.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Avec la méthode .Span
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

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é !
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Ok merci bien, je vais me documenter sur le sujet...