Détection de caracteres [Résolu]

Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention - 4 oct. 2007 à 23:42 - Dernière réponse : Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 5 oct. 2007 à 08:23
3
Merci
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

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de jrivet
Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 10 oct. 2007 à 08:42
3
Merci
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

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de jrivet
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 5 oct. 2007 à 02:46
0
Merci
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)
Commenter la réponse de cs_Jack
Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention - 5 oct. 2007 à 07:32
0
Merci
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
Commenter la réponse de Marneus73
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 5 oct. 2007 à 15:10
0
Merci
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"
Commenter la réponse de cs_Jack
Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention - 9 oct. 2007 à 21:55
0
Merci
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.
Commenter la réponse de Marneus73
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 9 oct. 2007 à 23:20
0
Merci
Avec la méthode .Span
Commenter la réponse de cs_Jack
Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention - 10 oct. 2007 à 07:10
0
Merci
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é !
Commenter la réponse de Marneus73
Marneus73 344 Messages postés mercredi 24 janvier 2007Date d'inscription 27 octobre 2008 Dernière intervention - 10 oct. 2007 à 20:36
0
Merci
Ok merci bien, je vais me documenter sur le sujet...
Commenter la réponse de Marneus73

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.