| Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
|
+8Klaus papydall silverman Jean Claude Yannick Marc Minibug Jack 12 participants |
|
Auteur | Message |
---|
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 8:15 | |
| Version instantanée V 0.9.28i2 du 01/05/2017 possédant l'objet SYNEDIT. Utilisation de l'objet SYNEDITL'objet SYNEDIT est un éditeur de code source, avec des fonctions de recherche et de remplacement de chaînes de caractères. Recherche d’une chaîne de caractères: La fonction FIND(S$,N,P) recherche et sélectionne la chaine de caractères S$ dans le source de l'objet SYNEDIT numéro N, à partir de la position P, et retourne la position du dernier caractère de la chaine trouvée ou -1 si la chaine S$ n'a pas été trouvée. Ainsi, il est facile de rechercher toutes les occurences d'une chaine de caractère en appelant la fonction avec le paramètre P fourni par un appel précédent. (Pour les panoramiciens attentifs, ce fonctionnement ressemble à celui des fonctions CURVE_ANGLE ou CURVE_VALUE, pour lesquelles on appelle une fonction avec le résultat de l'appel précédent). Remplacement d’une chaîne de caractères par une autre: La fonction REPLACE(S1$,S2$,N,P) remplace la chaine de caractères S1$ par S2$ dans le source de l'objet SYNEDIT numéro N, à partir de la position P, sélectionne la chaine S2$ et retourne la position du dernier caractère de la chaine remplacée ou -1 si la chaine S1$ n'a pas été trouvée. On peut ainsi facilement faire une boucle pour remplacer toutes les occurences d'une chaine de caractère par une autre, là aussi en appelant la fonction avec le paramètre P fourni par un appel précédent. L'objet SYNEDIT permet de colorer le fond, de choisir une taille, une police de caractères, une couleur et un style aux mots-clés, aux commentaires, aux chaînes de caractères, à la "gouttière" (partie gauche pour la numérotation des lignes). Les mots-clés sont ceux de Panoramic V 0.9.27. Les délimiteurs de chaîne de caractères sont les guillemets. L’indicateur de début de commentaire est l’apostrophe. Le saut de ligne marque la fin d’un commentaire. Par défaut, les numéros de ligne (gouttière) sont visibles et de couleur olive, le source apparaît en couleur noire, la taille des caractères est de 10, la police des caractères est « Courier New ». Les mots-clés sont colorés en bleu, les chaînes de caractères en gris et les commentaires en rose. Pour que les commandes s’adressent soit aux mots-clés, soit aux commentaires, soit aux chaînes de caractères, soit à la gouttière, on "cible" ces commandes: SYNEDIT_TARGET_IS_KEYWORD : les commandes de couleur et de style (type FONT) s'adressent aux mots-clés SYNEDIT_TARGET_IS_COMMENT : les commandes de couleur et de style (type FONT) s'adressent aux commentaires SYNEDIT_TARGET_IS_STRING : les commandes de couleur et de style (type FONT) s'adressent aux chaînes de caractères SYNEDIT_TARGET_IS_GUTTER : les commandes de couleur FONT_COLOR, de taille FONT_SIZE, de police FONT_NAME et de style (type FONT) s'adressent à la gouttière (numérotation des lignes). La commande COLOR s'adresse au fond de la gouttière. Les commandes HIDE et SHOW s'adressent à la gouttière (visualisation ou pas des numéros de ligne). SYNEDIT_TARGET_IS_OBJECT : les commandes de couleur FONT_COLOR, de taille FONT_SIZE, de police FONT_NAME s'adressent à tout le source, c'est la redirection par défaut. La commande COLOR s'adresse au fond du source. Les commandes HIDE et SHOW s'adressent à l'objet SYNEDIT. Un petit exemple pour illustrer: - Code:
-
SYNEDIT 1:' création d'un objet SYNEDIT
FONT_SIZE 1,14:' le code est en taille 14
FILE_LOAD 1,"source.txt":' on charge un source
SYNEDIT_TARGET_IS_KEYWORD FONT_COLOR 1,255,0,0:' les mots-clés sont colorés en rouge (ils étaient en bleu) FONT_BOLD 1:' les mots-clés sont en style gras
SYNEDIT_TARGET_IS_GUTTER FONT_SIZE 1,14:' les numéros de ligne sont en taille 14 FONT_ITALIC 1:' les numéros de ligne sont en italique FONT_COLOR 1,255,0,0:' les numéros de ligne sont colorés en rouge (ils étaient olive)
SYNEDIT_TARGET_IS_COMMENT FONT_COLOR 1,0,255,0:' les commentaires sont colorés en vert (ils étaient en rose) FONT_UNDERLINE 1:' les commentaires sont soulignés
SYNEDIT_TARGET_IS_STRING FONT_COLOR 1,0,0,255:' les chaines de caractères sont colorés en bleu (elles étaient en gris) FONT_ITALIC 1:' les chaines de caractères sont soulignées
DIM P WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE ' tous les "print" sont remplacés par "imprime"
_________________ username : panoramic@jack-panoramic password : panoramic123
Dernière édition par Jack le Lun 29 Mai 2017 - 9:15, édité 10 fois | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 8:20 | |
| Merci Jack ! Voila un beau brin de muguet pour ce premier mai ! Je télécharge et je tente la transformation du code de PANOLIKE. | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 8:32 | |
| Merci Jack ! | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 8:32 | |
| Il y a peut-être quelques bugs dans cet objet SYNEDIT, et je n'ai pas tout fait ce que je voulais faire, par exemple une fonction donnant la position du premier caractère d'une ligne ou le numéro d'une ligne à partir de la position d'un caractère (car les positions sont comptées à partir du premier caractère du source).
Mais bon, c'est un départ.
Je vais maintenant m'attaquer (après une pause) à MAKE_EXE. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 8:41 | |
| Heuuu Jack je pense que l'on a plus qu'un bug !! L'éditeur ne permet pas d’exécuter le programme. J'ai pris l'habitude avec la 0.9.28i1 d'avoir ce message d'erreur une premier fois. Je le supprime et je relance. sauf que là c'est toujours le même message... J'ai re-téléchargé le source en pensant à un soucis de ce coté et toujours le même problème. - Spoiler:
Dernière édition par Laurent (Minibug) le Lun 1 Mai 2017 - 17:46, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Lun 1 Mai 2017 - 9:40 | |
| Idem pour moi Jack. Edit : J' ai essayé de lancer le code source ci-dessus avec Panoramic.exe et j' ai un retour d' erreur ligne 20 qui contient ceci : SYNEDIT_TARGET_IS_STRING | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 16:08 | |
| Bonsoir à tous et merci à Jack,
J'ai fait une tentative avec le code de jack.
Idem que pour mes 2 camarades, impossible de lancer le programme à partir de l'éditeur.
Par contre ça marche si je fais un exécutable avec l'éditeur et que je lance cet exécutable. A ce stade, comme pour Yannick SYNEDIT_TARGET_IS_STRING provoque l'erreur "illégal instruction". Mais l'objet SYNEDIT est bien crée et les colorations, tailles, ect, fonctionnent.
A+ | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 1 Mai 2017 - 20:16 | |
| Je trouve que c'est un bon début, ça se présente bien; Sinon, idem que Jean Claude. | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 8:46 | |
| Les 2 erreurs sont corrigées (SYNEDIT_TARGET_IS_STRING non reconnu et impossibilité d'exécuter avec l'éditeur). Bons tests de SYNEDIT _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 9:27 | |
| Merci Jack ! EDIT : Après quelques tests globalement les commandes fonctionnent bien ! Seuls REPLACE et FIND ne sont pas reconnues. Il y a aussi parfois, c'est pas régulier, de méchants plantages qui ont plutôt l'air d’apparaître lors du redimensionnement de la FORM 0 J'ai fait ces tests avec le code suivant en variant les valeurs et paramètres. puis en exécutant le source à chaque fois. - Code:
-
SYNEDIT 1 :FULL_SPACE 1
SYNEDIT_TARGET_IS_OBJECT : COLOR 1,0,0,0 : FONT_COLOR 1,200,200,200 : FONT_SIZE 1,8 SYNEDIT_TARGET_IS_KEYWORD : FONT_COLOR 1,50,100,255 : FONT_BOLD 1 SYNEDIT_TARGET_IS_STRING : FONT_COLOR 1,200,255,100 : FONT_BOLD 1 SYNEDIT_TARGET_IS_COMMENT : FONT_COLOR 1,150,150,150 : FONT_ITALIC 1 SYNEDIT_TARGET_IS_GUTTER : COLOR 1,255,255,255 : FONT_COLOR 1,0,0,0 : FONT_SIZE 1,8
FILE_LOAD 1,"C:\Panoramic\PANOLIKE\PanoLike - Copie.bas" END | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 12:57 | |
| - Jack a écrit:
- Les 2 erreurs sont corrigées (SYNEDIT_TARGET_IS_STRING non reconnu et impossibilité d'exécuter avec l'éditeur).
Je confirme : c’est Ok pour les 2 erreurs. Mais il reste un minibug (pas notre ami Laurent !) Le minibug concerne le caractère guillemet. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 14:24 | |
| Je confirme que FIND n'est pas reconnu. Pour REPLACE: il y a effectivement l'erreur signalée par Papydall, Mais la commande fait bien son travail dans le texte qui est chargé dans l'objet SYNEDIT 1 - Code:
-
P=1 : a$="error_french" : b$="error_english" WHILE P<>-1 : P=REPLACE(a$,b$,1,P) : END_WHILE
Donc l'erreur signalée n'est peut-être pas en rapport avec REPLACE (ça arrive souvent). A+ | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 14:30 | |
| Je viens de trouver un bug dans les fonctions FIND() et REPLACE() : ces fonctions ne cherchent/remplacent que sur une étendue de 1000 caractères après la position spécifiée, au lieu d'agir dans toute l'étendue du source après la position spécifiée. C'est un résidu d'un test que j'ai oublié de retirer. Je corrige cela pour ce soir.
Que veut dire "FIND n'est pas reconnu ?" _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 14:48 | |
| Et bien en fait voila : - Spoiler:
Dernière édition par Laurent (Minibug) le Mar 2 Mai 2017 - 19:44, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 15:00 | |
| @Laurent: as-tu essayé de placer le contenu des deux chaînes de caractères dans des variables ? Il me semble que c'est un problème de reconnaissance de constantes de type chaînes de caractères là où Panoramic semble s'attendre à une variable. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 15:07 | |
| @Bien vu Klaus, c'est ce que j'ai fait.
@Laurent, fait ce que Klaus propose, mais encore faut-il que les mots "print" et "imprime" soit dans le source
Pour FIND ce n'est pas le même problème.
@Jack, FIND n'est pas reconnu veut dire qu'il envoi le message "illégale instruction". Pardon pour cette imprécision de langage.
A+ | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 15:17 | |
| J'ai trouvé une solution, pour REPLACE, qui ne plante pas ! - Code:
-
repeat P=REPLACE(a$,b$,1,P) until P<>-1
Il y aurait bien un bug avec WHILE
A+ PS: BON BEN... C'est faux, car avec REPEAT il y a arrêt de la recherche avant la limite de caractère signalée plus haut par Jack.
Dernière édition par Jean Claude le Mar 2 Mai 2017 - 17:53, édité 1 fois | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 17:34 | |
| Quand je parlais d'instabilité, et bien voila ! J'ai exécuté le code qui ne fait que mettre en place SYNEDIT. Ensuite j'ai juste navigué dans le code par la molette de la souris et CRACK !!! - Spoiler:
Dernière édition par Laurent (Minibug) le Mar 2 Mai 2017 - 19:44, édité 1 fois | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 18:02 | |
| Ce qui est curieux, c'est que de mon coté je n'ai eu aucun plantage de ce type en travaillant une bonne heure avec cette version de Panoramic_Editor. On verra par la suite...
A+
| |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 18:11 | |
| Je pense que l'instabilité provient principalement de la fonction SYNEDIT qui doit avoir encore quelques bugs comme l'avait dit Jack dans les premiers posts de cette discussion. Je mets cela en avant pour aider Jack à trouver les bugs. Maintenant je pense qu'il doit déjà avoir une idée de ce qui cloche ou n'est pas totalement finalisé.
Dernière édition par Laurent (Minibug) le Mar 2 Mai 2017 - 19:43, édité 1 fois | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 18:46 | |
| Il y a effectivement un problème d'événements lors du survol de la souris ou d'un clic sur un SYNEDIT. Il me faut un peu de temps pour analyser ce problème afin de le corriger. La correction ne sera sans doute pas pour ce soir. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 2 Mai 2017 - 19:02 | |
| | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mer 3 Mai 2017 - 11:47 | |
| Bonjour à tous !
Après plusieurs tests sur FIND(S$,N,P) et REPLACE(S1$,S2$,N,P), j'ai réussi à les utiliser et cela fonctionne.
Le problème apparaît s'il ne trouve pas le texte (a la fin de la recherche en fait) et là on a cette erreur en rapport avec le guillemet. C'est peut être aussi lié au nombre de caractères maxi que Jack avait précisé. | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mer 3 Mai 2017 - 13:37 | |
| Je viens de mettre la version 0.9.28i3 disponible au téléchargement. Les problèmes rencontrés sur la gestion des événements avec l'objet SYNEDIT et sur les fonctions FIND() et REPLACE() sont résolus.
Comme l'a très bien vu Laurent, les problèmes apparaissaient quand rien ne pouvait être remplacé. (la fonction retournait une autre valeur que -1 et cela provoquait une erreur externe) _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mer 3 Mai 2017 - 14:58 | |
| Cette fois-ci, ça marche (essai fait sur un code de 1328 lignes).
Pour mes camarades: Pour utiliser FIND dans le code de Jack (tout là haut), une boucle while ne convient pas, car la recherche va au bout du source qui est chargé. - Code:
-
REPEAT : P=FIND(a$,1,P) : UNTIL P<>-1 Avec REPEAT on a bien la sélection de a$. A+ PS: j'ai fait deux essais (un pour chaque commande) en utilisant pour a$ un mot dont j'étais certain qu'il n'était pas dans la source. Le résultat est bien (à chaque fois) -1. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
| |
|
| |
| Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
|