Sélection d'une ligne en Rich Text Box

Blousé - 5 août 2001 à 20:26
 Blousé - 6 août 2001 à 12:27
Voilà un petit casse tête (pour moi entout cas, vu que je ne connaît pas grand chose) :

A l'aide de la fonction Find je recherche dans mon texte des mots, pour les mots entiers, pas de problème pour les sélectionner et les changer de couleurs, mais je voudrais faire en sorte que certaines lignes soit entièrement sélectionnées, sachant qu'elles n'ont en commun que le début :shock) !!! voici mon code :

Vs = 0
For t = 0 To Len(Rich1.Text)

'Find (bstrString,Vstrat,Vend)
Rich1.Find "net_", Vs, Len(Rich1.Text)

Vs = Rich1.SelStart + Rich1.SelLength
If Vs = BackUp Then Exit For
BackUp = Vs

'A savoir que le fait de rechercher chr(13) me fait quitter la boucle :(
FinLine1 = InStr(Rich1.SelStart, Rich1.Text, chr(13), vbBinaryCompare)

Rich1.SelLength = FinLine1 - Rich1.SelStart
Rich1.SelColor = &HC000&
DoEvents

Next t

1 réponse

Ben en fait g réussit à trouver !!! regardez :

Dim Vs, BackUp, i, t, TempIChar As Long
Dim LinNb As Integer
Dim FinLine1 As Byte

... Gd'otres truc avant

Vs = 0
On Error GoTo suite2 'une petite sécurité qui ne sert à rien
For t = 0 To Len(Rich1.Text)
Rich1.Find "net_", Vs, Len(Rich1.Text) 'Recherche de "net_", il est tjs situé en début de ligne
Vs = Rich1.SelStart + Rich1.SelLength 'on vient de trouver un "net_", le recherche devra reprendre après la fin du mot
If Vs = BackUp Then Exit For 'on vérifie que ce n'est pas la deuxième fois que l'ont passe sur ce mot, sinon on se casse de la boucle
TempIChar = Vs 'Préparation de la variable TempIChar
LinNb1 = Rich1.GetLineFromChar(Vs) 'Le N° de ligne qui va chager dasn le do loop
LinNb = Rich1.GetLineFromChar(Vs) 'Le N° de ligne qui va servir pour la comparaison Do While LinNb LinNb1 'Do loop tant que la ligne ne change pas (ne pas utiliser : Do While LinNb Rich1.GetLineFromChar(Vs), le Do ne fonctionnera pas !!!)
LinNb1 = Rich1.GetLineFromChar(TempIChar) 'on cherche la prochaine ligne caractère par caractère
TempIChar = TempIChar + 1 'Tempichar correspondait vs qui équivaut à la fin du mot rechercher
DoEvents 'Très important, en cas de Problème on peut qd mm Quitter
Loop
TempIChar = TempIChar - 1 'on est sortit de la boucle, donc on a changé de ligne, donc la fin de la ligne précédente correspond au caractère pécédent
Rich1.SelLength = TempIChar - Rich1.SelStart 'Rich1.SelStart n'a pas changé, il ne rest qu'à changé la longueur de la sélection
Rich1.SelColor = &HC000& 'Un peu de couleur, ici du vert
Vs = Rich1.SelStart + Rich1.SelLength 'Je sais qu'on déjà mis ça plus haut, mais vs à changé
BackUp = Vs 'Un petit Backup de vs pour pouvoir vérifier la condition située un peu plus haut au prochain passage
DoEvents 'DoEvents pour le cas où le fichier serai long, ou la boucle ne finisse pas
Next t
suite2:
0
Rejoignez-nous