PureASM 1.0

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ah, au fait, j'ai vu que tu avais mis 2 panel gadget imbriqué mais un seul CloseGadgetList (j'ai vu ça en testant PBSyntax sur ton code)

il en manque un, bon c'est juste histoire d'écrire plus proprement le code

voilà :D
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Merci Denis de t'occuper de ce problème, il m'est arrivé la même chose sur un fichier de grande taille, mais je ne sais pas si c'est dû à la taille...
La nouvelle version progresse maintenant on peut fermer les fichiers...
Merci le Soldat Inconnu pour ta remarque, je viens de faire la correction. Un code propre et plus compréhensible...
a+
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

erix14 a écrit :Merci Denis de t'occuper de ce problème, il m'est arrivé la même chose sur un fichier de grande taille, mais je ne sais pas si c'est dû à la taille...
La nouvelle version progresse maintenant on peut fermer les fichiers...
Merci le Soldat Inconnu pour ta remarque, je viens de faire la correction. Un code propre et plus compréhensible...
a+
Le mien fait environ 8500 lignes dont environ 4000 lignes de codes pour faire des tests sur mon prog, ces 4000 lignes sont en commentaire.

Peut-être la longueur ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai perso signalé que la longueur d'un code (du listing) faisait planter le debugeur
qui n'affiche plus les ligne de code en "step"

peut etre une cause commune ?

allez voir en rubrique BUG j'avais mis un petit exemple qu'il faut tracer avec
le debugeur pour avoir le problem dont je parle et qui resemble d'une certaine maniere a votre problem ! :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Merci Dobro, j'ai regardé ton post mais ça n'a pas de rapport, avec ou sans débugger c'est pareil

Erix14, je pense avoir isolé le problème.

J'ai modifié le /COMMENTED pour pouvoir ouvrir les fichiers avec du code asm

J'ai mis /INLINEASM /COMMENTED et je peux ouvrir mes applications :D

Bon pour le plantage c'est dans la procedure ColoriserTexte()
On ne sortait pas de la boucle while.
Enfin de compte j'en suis arrivé là

Code : Tout sélectionner

         CopyMemoryString("\line ") : LigneRTF + 1
         While *Texte\b <= 32 : *Texte + 1 : Wend
         If CompareMemoryString(*Texte, "v_", 1, 2) = 0 : Variable = #True : EndIf
         Continue
      EndIf
      If c = '\' Or c = '{' Or c = '}'
         CopyMemoryString("\" + Chr(c))
la boucle While *Texte\b <= 32 prend en compte tout les caractères ASCII inférieurs ou égaux à l'espace, y compris le 0 de terminaison de chaîne et le problème intervient tout à la fin du fichier, le pointeur *Texte\b se retrouve avec une adresse ou il pointe je ne sais ou.

J'ai corrigé comme ceci

Code : Tout sélectionner

         CopyMemoryString("\line ") : LigneRTF + 1
          While (*Texte\b <= 32 And *Texte\b)
              *Texte + 1
          Wend
          If CompareMemoryString(*Texte, "v_", 1, 2) = 0
             Variable = #True 
          EndIf
          Continue
      EndIf
      If c = '\' Or c = '{' Or c = '}'
         CopyMemoryString("\" + Chr(c))
et c'est bon. J'ai chargé plusieurs fichiers sans problème.

Par contre quelques lignes juste avant dans la même procedure on a la même ligne




Code : Tout sélectionner

       If c = 10 Or c = 13
         If Commentaire = #True
            If ListeSignet
               ListeSignet = #False
               ListeSLV()\Ligne = LigneRTF
               ListeSLV()\Index = IndexRTF
               ListeSLV()\type = 1
            EndIf
            CopyMemoryString("\line ") : LigneRTF + 1 : Commentaire = #False
            While *Texte\b <= 32 : *Texte + 1 : Wend
            Continue
         EndIf
Peut-être à corriger également, mais je te laisse juge :D
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Excellent Denis, je savais que je pouvais compter sur toi :wink:
Mon fichier de grande taille de plante plus, mais je me suis aperçu d'un autre petit problème sur ma scrollbar qui reprend à 1 après la ligne ~32767 ( $FFFF / 2 ) certainement à cause des nombres signés, je rectifierai...
Pour l'autre ligne juste avant c'est vrai que le fichier ASM généré par PureBasic ne se termine jamais sur une ligne de commentaires, mais j'ai rectifié quand même, on ne sait jamais...

A+, et encore merci :D :D :D
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Salut,
quelques mois plus tard !
Ton outil est vachement utile mais concernant la coloration syntaxique, elle fonctionne lors du chargement d'un fichier mais pas lorsque j'écrit mon code ASM.
De plus, lors de la création d'un nouveau panel, cela clignote au niveaux des deux panels. pour régler ce pb, je dois cliquer sur le nouveau onglet affiché !

Concernant, je suis en train de travailler dessus afin de l'améliorer un max ! Ca fonctionne mais je souhiate l'améliorer
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

@Progi1984
la colorisation syntaxique à la saisie est intégrée dans la version 2, mais il me reste des choses à faire avant de vous proposer cette version. Et il n'y a plus de problèmes de clignotement...
Ne perds pas ton temps à l'améliorer, car cette utilitaire est pratiquement finie.
Tu peux voir à quoi il ressemble sur mon mini site en cliquant sur le bouton [www] en bas. :D
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Tu penses le diffuser quand ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

erix14 a écrit :Ne perds pas ton temps à l'améliorer, car cette utilitaire est pratiquement finie.
En fait, je parlais de ma lib qui contient des fonctions de coloration syntaxique. Et c'est celle ci que j'essaie d'améliorer en utilisant les tampons mais je n'y comprends que dalle !
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Progi1984 a écrit :Tu penses le diffuser quand ?
j'aurais déjà dû le diffuser :mrgreen: malheureusement j'ai pris du retard.
Même s'il n'est pas fini, on peut l'utiliser quand même... J'essaierai ce week-end où le prochain de vous le proposer en téléchargement sur mon site.
(Mais ce n'est qu'une version bêta, il ne faudra pas vous plaindre ensuite :D )
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Et comment fais tu ta coloration syntaxique en temps réel ?
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Et comment fais tu ta coloration syntaxique en temps réel ?
À chaque fois qu'il y a un changement dans le RichEdit (#EN_CHANGE) je récupère la ligne en cours et je m'en sers pour coloriser les mots qu'il faut :

Code : Tout sélectionner

                    SendMessage_(Editeur()\Handle, #EM_SETSEL, Debut, Fin)
                    format\crTextColor = CouleurRegistre
                    SendMessage_(Editeur()\Handle, #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
ne pas oublier de mettre ceux-ci au début pour que l'utilisateur ne s'aperçoit de rien

Code : Tout sélectionner

SendMessage_(Editeur()\Handle, #EM_HIDESELECTION, 1,0)
et cela à la fin pour que les sélections soient de nouveau visible

Code : Tout sélectionner

SendMessage_(Editeur()\Handle, #EM_HIDESELECTION, 0,0)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

C'est exactement ce que je fais !
Que je te réexplique :
dés qu'il y a un changement, je prends le texte de la ligne en cours, et fait comme toi pour la colorisation.
Mais le problème se pose dés que la ligne dépasse la longueur du gadget car quand je prends le texte de la ligne, je colorise certains trucs au début donc on voit bien qu'il ya un retour en début de ligne puis un retour au curseur. Et c'est cà que j'essaie de modifier !

As tu un idée ?
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

@Progi1984
pour empêcher le scrolling horizontale de se faire mets cette ligne avant ton traitement de chaînes

Code : Tout sélectionner

SendMessage_(Editeur()\Handle, #EM_SETOPTIONS, #ECOOP_XOR, #ECO_AUTOHSCROLL)
et à la fin cela pour remettre en ordre

Code : Tout sélectionner

SendMessage_(Editeur()\Handle, #EM_SETOPTIONS, #ECOOP_OR, #ECO_AUTOHSCROLL)
Répondre