cs_Siller
Messages postés20Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 8 avril 2003
-
21 avril 2003 à 20:05
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007
-
1 août 2003 à 21:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 1 août 2003 à 21:13
Je fais pour avoir le moins de variables possible, je pense que c'est en mémoire mais d'un autre côté, je me demmande si il ne prend pas plus de mémoire en recalculant a chaque fois.
lol, je crain que sur un ptit truc ainsi, ça ne se voit pas...
Au fait, j'ai trouvé ce contrôle :-), il faut aller le cocher dans referance... (mais bon, je pouvais pas savoir)
Merci !!!
Il y a MSDN qui est bien fourni sur les ER :-)
(vraiment bien)
Dommage que c'est en Anglais...
(Bon, je comprends mais ceux qui ne connaissent pas la langue...)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 juil. 2003 à 21:25
dans l'absolu, je suis d'accord, mais dans quelle case de l'optimisation case tu ton code ?? ;)
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 30 juil. 2003 à 18:35
Renfield,
Je viens de pensser un truc en te relisant :-)
ça dépends comment tu veux optimiser ton prog
*Vitesse
*Taille
*Mémoire
Le mieux est d'arriver a faire les 3 lol,mais eb VB...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 28 avril 2003 à 04:33
je pense que tu y gagnes en temps d'execution , a ne pas recalculer. Ajouter 3 Variables , ce n'est pas dramatique.......(et plus rapide...)
le code que j'ai saisi en commentaires est a mon avis plus rapide que le tient , plus rigoureux , en tout cas , je pense.
il faut que je ne colorie que le code visible , et peut etre, que je detache une thread pour colorier en temps reel, mais la, ca marche , et ca differe totalement de ton algo.....
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 27 avril 2003 à 23:56
Merci Renfield,
a)
je ne voulais pas que le mot soit colorer si il est dans un autre mot car si on à une variable gerondif (par exemple) alors le "if" sera coloré,ce qui est génant.
b)
je recalcule mais penses-tu que je gagne en mémoire en faisant ça ?
c)
merci !
d)
c'est marrant, tu utilise une autre sorte de boucle !
Elle est plus rapide ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 avril 2003 à 11:09
VOICI ma facon de voir la coloration , d'apres ton code , car plusieurs points me derngent dans ton code , et le ralentissent...
Sub Colorer(ByVal Mot As String, Coul As Long)
'On met ByVal, pour ne pas modifier le parametre effectif, avec le Lcase
If Mot = vbNullString Then Exit Sub
Dim oldPos As Long, pos As Long
Dim Start As Long
'Il faut mettre des Long , et pas des Integers car les indices peuvent être > 65535
Dim Length As Long, LText As String
Mot = LCase(Mot)
LText = LCase(text1.Text)
Length = Len(Mot)
' Il vaut mieux stocker ca , plutot que le recalculer sans cesse !
oldPos = text1.SelStart
Start = 1
pos = InStr(Start, LText, Mot, vbTextCompare)
While pos <> 0 'si Pos=0c'est la fin de la coloration pour ce mot
text1.SelStart = pos - 1
text1.SelLength = Length
text1.SelColor = Coul
text1.SelBold = True
Start = pos + Length
pos = InStr(Start, LText, Mot, vbTextCompare)
DoEvents
Wend
text1.SelStart = pos
text1.SelColor = QBColor(0)
text1.SelBold = 0
'Cette solution devrai être plus rapide , bien que la methode choisie ne soit pas optimale :
'le mot sera trouvé, meme si present dans un autre :
' aaaaaTOTOaaaaaaa toto sera colorié......
' je developpe une coloration de code source en temps réel ( en cours de frappe )
' pour l'instant pour du code C , mais ca va se generaliser , j'utilise pour info les expression regulieres...
End Sub
cs_RbbR
Messages postés22Date d'inscriptionmardi 22 octobre 2002StatutMembreDernière intervention 9 avril 2003 23 avril 2003 à 20:04
super ga!!
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 22 avril 2003 à 11:06
Pouras-tu mettre ta source sur le site ?
Merci
cs_Siller
Messages postés20Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 8 avril 2003 21 avril 2003 à 21:43
Ok ;)
Merci beaucoup je vais adapter cette source ;p
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 21 avril 2003 à 20:49
awswax.ocx est le lecteur falsh !!!
(qui n'a rien a voir avec l'application)
krissssss
Messages postés88Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 janvier 2007 21 avril 2003 à 20:30
Merci beaucoup,
j'arrange cela de suite !
(je ne l'ai pas vu...)
cs_Siller
Messages postés20Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 8 avril 2003 21 avril 2003 à 20:05
Le principe de ta coloration syntaxique m'interesse énormément
Le probleme est que pour ton log il manque deux choses :
- 1OCX : awswax.ocx
- et Recyser.ctl
Voila ..
Sinon si tu pouvais m'expliquer ou donner le code pour la coloration syntaxique .. Je suis preneur ;)
Merci d'"avance
1 août 2003 à 21:13
lol, je crain que sur un ptit truc ainsi, ça ne se voit pas...
Au fait, j'ai trouvé ce contrôle :-), il faut aller le cocher dans referance... (mais bon, je pouvais pas savoir)
Merci !!!
Il y a MSDN qui est bien fourni sur les ER :-)
(vraiment bien)
Dommage que c'est en Anglais...
(Bon, je comprends mais ceux qui ne connaissent pas la langue...)
30 juil. 2003 à 21:25
30 juil. 2003 à 18:35
Je viens de pensser un truc en te relisant :-)
ça dépends comment tu veux optimiser ton prog
*Vitesse
*Taille
*Mémoire
Le mieux est d'arriver a faire les 3 lol,mais eb VB...
28 avril 2003 à 04:33
le code que j'ai saisi en commentaires est a mon avis plus rapide que le tient , plus rigoureux , en tout cas , je pense.
ma source avec les Expressions Regulieres est sur le site , si tu veux
http://www.vbfrance.com/article.aspx?Val=8567
il faut que je ne colorie que le code visible , et peut etre, que je detache une thread pour colorier en temps reel, mais la, ca marche , et ca differe totalement de ton algo.....
27 avril 2003 à 23:56
a)
je ne voulais pas que le mot soit colorer si il est dans un autre mot car si on à une variable gerondif (par exemple) alors le "if" sera coloré,ce qui est génant.
b)
je recalcule mais penses-tu que je gagne en mémoire en faisant ça ?
c)
merci !
d)
c'est marrant, tu utilise une autre sorte de boucle !
Elle est plus rapide ?
25 avril 2003 à 11:09
Sub Colorer(ByVal Mot As String, Coul As Long)
'On met ByVal, pour ne pas modifier le parametre effectif, avec le Lcase
If Mot = vbNullString Then Exit Sub
Dim oldPos As Long, pos As Long
Dim Start As Long
'Il faut mettre des Long , et pas des Integers car les indices peuvent être > 65535
Dim Length As Long, LText As String
Mot = LCase(Mot)
LText = LCase(text1.Text)
Length = Len(Mot)
' Il vaut mieux stocker ca , plutot que le recalculer sans cesse !
oldPos = text1.SelStart
Start = 1
pos = InStr(Start, LText, Mot, vbTextCompare)
While pos <> 0 'si Pos=0c'est la fin de la coloration pour ce mot
text1.SelStart = pos - 1
text1.SelLength = Length
text1.SelColor = Coul
text1.SelBold = True
Start = pos + Length
pos = InStr(Start, LText, Mot, vbTextCompare)
DoEvents
Wend
text1.SelStart = pos
text1.SelColor = QBColor(0)
text1.SelBold = 0
'Cette solution devrai être plus rapide , bien que la methode choisie ne soit pas optimale :
'le mot sera trouvé, meme si present dans un autre :
' aaaaaTOTOaaaaaaa toto sera colorié......
' je developpe une coloration de code source en temps réel ( en cours de frappe )
' pour l'instant pour du code C , mais ca va se generaliser , j'utilise pour info les expression regulieres...
End Sub
23 avril 2003 à 20:04
22 avril 2003 à 11:06
Merci
21 avril 2003 à 21:43
Merci beaucoup je vais adapter cette source ;p
21 avril 2003 à 20:49
(qui n'a rien a voir avec l'application)
21 avril 2003 à 20:30
j'arrange cela de suite !
(je ne l'ai pas vu...)
21 avril 2003 à 20:05
Le probleme est que pour ton log il manque deux choses :
- 1OCX : awswax.ocx
- et Recyser.ctl
Voila ..
Sinon si tu pouvais m'expliquer ou donner le code pour la coloration syntaxique .. Je suis preneur ;)
Merci d'"avance