RichTextBox

cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 - 24 nov. 2006 à 09:46
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 - 24 nov. 2006 à 13:09
Bonjour,

je suis en train de développer un simple éditeur de texte permettant la modification d'un fichier avec une fonction de recherche et la sauvegarde de ce fichier.

pourriez vous m'aider sur deux problèmes qui me tracassent ?

lors de l'ouverture d'un fichier avec l'objet 'richtextbox' (richtext.filename = nom_fic), le fichier est toujours accessible via une autre application. comment vérouillé l'accès à ce fichier ?
la commande filename possède t'elle un paramètre permettant ce vérouillage ou bien faut il ouvrir le fichier dans le richtextbox et ensuite ouvrir le fichier à l'aide d'un open et le fermer avec un close lorsqu'on sort de l'éditeur ...

j'espere être assez clair ...

D'autre part, dans la fonction de recherche, je ne sais pas comment récupérer la position
du curseur.
ceci dans le but de pouvoir effectuer la recherche plusieurs fois dans le texte.

voici mon code qui ne recherche qu'une fois dans le texte :
    positionrech = richtext.Find("bonjour", , , rtfNoHighlight)
    If positionrech <> -1 Then
      richtext.SelStart = positionrech
      richtext.SelLength = Len("bonjour")
   Else
      MsgBox "Chaîne introuvable."
   End If

merci d'avance pour toute votre aide,

8 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
24 nov. 2006 à 09:54
Salut si ton fichier à lire est un fichier texte pourquoi ne lis tu pas directement dedans?

 Drikce 06
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
24 nov. 2006 à 10:00
le lire directement dedans ? c'est à dire ?

le but de cet éditeur est de ne pas donner l'accès au répertoire des fichiers
aux utilisateurs et de limiter la sauvegarde au même nom du fichier (fonction 'save' et non pas 'save as').

merci,
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
24 nov. 2006 à 10:29
Pour illustrer ce que je veux dire :

Sub Recherche(ByVal FilePath As String, ByVal TexteChercher As String)


Dim TaString As String
Dim count As Integer


Open FilePath For Input As #1


count = 0


While Not EOF(1)


Line Input #1, TaString


If InStr(1, TaString, TexteChercher, vbTextCompare) Then


count = count + 1


End If


Wend


MsgBox texterechercher & " apparaît " & count & " fois"


Close #1


End Sub


Private Sub CommandButton1_Click()


Call Recherche("C:\Analyse.txt", "bonjour")


End Sub

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
24 nov. 2006 à 10:30
A modifier :
MsgBox textechercher & " apparaît " & count & " fois"

 Drikce 06
0

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

Posez votre question
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
24 nov. 2006 à 10:55
euh ...

en fait, je souhaite bannir la lecture du fichier en boucle puisque le fichier peut atteindre 15 mega.


et la recherche doit positionner le curseur sur le mot recherché (comme un éditeur de texte) et non pas le nombre de fois trouvé.


 


donc pour résumer, je cherche à savoir comment ouvrir un fichier dans un richtextbox en mode vérouillé et comment connaître la position du curseur dans un richtextbox.


c'est peut etre un peu plus clair maintenant...


 


merci quand même pour tes réponses Drikce06 !!!
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
24 nov. 2006 à 11:00
Effectivement ça change tout.

 Drikce 06
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 nov. 2006 à 11:27
Intéresse-toi à la propriété Selstart (pour la position du curseur)


Intéresse-toi à Instr (pour la recherche d'un mot) ... Mais, avec un si grand fichier (15 mega, dis-tu, ça va être lourd ...)


Après avoir inséré ton fichier dans ta richtextbox, applique la méthode Open (sans rien fairee dans le fichier) , qui le verrouillera alors (ne pas oublier de libérer par un Close à la fin). Je ne sais maintenant pas comment l'insertion se fait (si d'un coup, tout ira bien... si par "séquences, par contre, les séquences successives seraient gênées par un verrouillage. Essaie et vois ... Si gêne : utilise un tremplin quelconque, genre utilisation d'une copie temporaire détruite in fine.

Ceci étant dit, j'utiliserais à ta place l'insertion d'on objet OLE et une copie temporaire détruite in fine.
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
24 nov. 2006 à 13:09
merci jmfmarques !

en effet, avec la propriété selstart y a du mieux :-)

    positionrech = richtext.Find("bonjour", richtext.selstart+1 , , rtfNoHighlight)
    If positionrech <> -1 Then
      richtext.SelStart = positionrech
      richtext.SelLength = Len("bonjour")
   Else
      MsgBox "Chaîne introuvable."
   End If
 
0
Rejoignez-nous