' Attention , ce code uitilise 'Microsoft VbScript Regular Expressions 5.5' donc je sais pas si ca va fonctionner partout.............
Télécharger le zip
tu as te faire des amis à poster ça sur vbfrance :-P
Effectivement pour 'Microsoft VbScript Regular Expressions 5.5' : Sur win 2000, j'ai la 5.1 et apparament y'a beaucoup de changement :-( . C'est la version avec IE 6?
Bravo c'est pas mal continu
Salut, et bravo !En plein dans ce que je cherche à créer depuis plusieurs semaines.Sauf que... mon but est de créer un contrôle permettant de coloriser du basic. Mais le problème est le même. Ton code est très proche de ce que l'on doit faire mais tu est toujours solidaire du contrôle RichTextBox.Cette solution est couteuse en vitesse : un code de 500 lignes sur mon PII 400 met une seconde à se rafaichir... insuportable.Une autre approche réside dans l'exemple que tu peux trouver avec Dev-C++. C'est un compilateur c++ écrit en Pascal. Son contrôle d'édition est lui même écrit en Pascal : SynEdit. Tous les sources sont disponible et le résultat est de très bonne qualité.Le site dev-c++ :http://www.bloodshed.net/dev/index.htmlLe site du projet (avec les sources) :http://sourceforge.net/projects/dev-cppLe source avec le contrôle SynEdit:http://prdownloads.sourceforge.net/dev-cpp/devcpp4src.zip?downloadLa lecture de ce projet peut te faire avancer dans l'objectif final.Bonne continuation,Bigane
merci , j'avais deja pas mal d'idée ( thread , parsing partiel , (ce qui est visible...)et si tu veux , je dois pouvoir adapter ma source , pour le vb....
Je te donne quelques éléments de mes recherches : l'objet final est une zone vide de type bouton ou image. Tu as une collection de lignes, chaque ligne est en réalité une structure complexe. Lorsque tu dois écrire une feuille, tu écris n lignes. Lorsque tu as un event Paint, tu n'écris que les zones du texte devant être redessinées. Donc calcul de zone avec les API. Le dessin d'une portion de ligne se fait mot après mot selon la couleur du fond et de la fonte désirée. Cette couleur dépends du token reconnu et de la sélection possible en inverse vidéo. Tu comprends alors la difficulté d'un tel code, c'est un sacré projet. A+Bigane.
vraiment très très interessant......... je vais voir a m'orienter vers ca , une fois les examen passés......merci !
Pour finir, tu peux voir le problème sous un autre angle : l'objet ne fait que dessiner du texte. Un autre code peut récupérer les lignes et piloter les fontes. L'objet ne fait pas le parsing, c'est le conteneur qui accède à ses méthodes qui le fait. Du coup, tu recrée un RichTextBoxA ("A" pour avanced)...
oui , c'est ce que je commence a faire............je dessine.......
ben dis donc ça vient balaise tout ça.. je me sens tout ptit a coté de vous :)A+
Je suis perdu !Où peut-on avoir une aide détaillée ?Merci
oula ! c'est pas gagné !!j'ai fait ce code il y a un moment, sans y retoucher depuis, mais bon, on va essayer d'expliquer davantage.en fait, le programme utilise des Expressions régulières (ER) pour rechercher des motifs dans le texte.c'est super pratique !! on dit en gros de rechercher du texte "qui ressemble à"...on peu aussi evaluer une chaine par rapport a un motif, pour dire s'ils coincident. finalement, on peut recuperer des sous chaines :pour tester un Mail :".+@.+..+"a@b.d est donc valide.....avec des parentheses, on designes des parties a decouper :"(.+)@(.+).(.+)" decoupera pour "toto@tutu.fr"toto , tutu et frenfin, on est pas la pour un cours complet sur les ER !! c'est mega puissant !donc, une fois le texte repondant a certains motifs trouvés, comme "//.*" qui designe les commentaires en ligne, on selectionne ledit texte, et on applique le style adequat.
OK, en gros, c'est ce que j'ai fais (sans les ER)Tu as une idées d'où je peux aller chercher ce contrôle ?Et aussi, ça t'interresserais de faire une coloration syntaxique sur base d'un treeview ? (ça aiderais pas mal de gens, ils n'auraient qu'a modifier le treeview pour créer une coloration pour un autre langage et sauver dans un .ini)Voilà, la porte est ouverte :-)
Je viens d'apprendre le ER lolC'est pas difficile tou compte fais.C'est un ensemble de règles simple qui font un truc compliqué!!!C'est un langage dans un langage !!!En fait, c'est tou con quand on utilise un for each ;-)Sans toi, j'aurais pas planché dessus, alors merci :-)ps: ça y est, on peut editer un treeview via un fichier texte qui se présente ainsi :Nom_du_rootSous_rep1.0.0.0--->Sous_rep1.1.0.0 Sous_rep1.2.0.0 Sous_rep1.3.0.0<---Sous_rep1.4.0.0Sous_rep2.0.0.0sous_rep3.0.0.0--->Sous_rep3.1.0.0 sous_rep3.2.0.0 --->sous_rep3.2.1.0 sous_rep3.2.2.0 --->sous_rep3.2.2.1 Voilà :-)"--->" = créer sous répertoire"<---"=remonter d'un repertoirNB: je peux le transformer pour en faire un utilitaire, tu en penses quoi ?Aller, je vais dormir car il est l'heure 0h53 ;-)
Salut Renfield, bravo c'est géant.
Je veux utilise ce code dans mon petite application mais jais reçu un message d erreur: (Dim Tok As Match),[User-defined type not defined]
Il te faut ajouter une refference à la librairie "Microsoft VBScript Regular Expressions 5.5"(de tête)voir dans le menu Projet > References
Bon Boulot, un petite astuce pour accélérer l'exécution de la coloration (c'est de l'ordre de 1 pour 1000) du mais rtfbox.visible = false ta procedure de colorationrtfbox.visible = trueça permet d'éviter le rafraichissement de la fenêtre par windows et ça passe complètement inaperçu pour l'utilisateur (c'est trop court pour être visible)je vois que comme toutes les sources qui travaillent avec une RTFBox, tu rencontre le problème du scrolling, c'est a dire que lorsqu'on tape du code plus long que ce peut contenir la fenêtre, a chaque événement change() le curseur se retrouve en bas de page, ce qui peut vite devenir extrêmement pénible dans un IDE.Bon code quand même... 8/10
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 874 088 membres 112 nouveaux aujourd'hui 16 151 membres club