FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Trois actions prioritaires Emptypar Pedro Hier à 10:37

» Un autre pense-bête...
Trois actions prioritaires Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Trois actions prioritaires Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Trois actions prioritaires Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Trois actions prioritaires Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Trois actions prioritaires Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Trois actions prioritaires Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Trois actions prioritaires Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Trois actions prioritaires Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Trois actions prioritaires Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Trois actions prioritaires Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Trois actions prioritaires Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Trois actions prioritaires Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Trois actions prioritaires Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Trois actions prioritaires Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-55%
Le deal à ne pas rater :
Friteuse sans huile – PHILIPS – Airfryer HD9200/90 Série 3000
49.99 € 109.99 €
Voir le deal

 

 Trois actions prioritaires

Aller en bas 
5 participants
AuteurMessage
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

Trois actions prioritaires Empty
MessageSujet: Trois actions prioritaires   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:10

Comme plusieurs membres de ce forum sont en train de développer un éditeur pour Panoramic, je ne peux que les encourager, et pour cela, voici mes trois prochaines actions prioritaires. Je vais me concentrer sur elles et tout le reste passera après.

1 - sortir une version instantanée V 0.9.28i2 possédant l'objet SYNEDIT.

2 - sortir une version de Make_EXE contenant cette version (V 0.9.28i2) et pouvant exécuter un source et signaler une erreur d'exécution.

3 - sortir une nouvelle version du compilateur correspondant à cette version V 0.9.28i2

Voici quelques détails.

Utilisation prévue de l'objet SYNEDIT

L'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 et de donner 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) au nombres dans un source, de choisir la taille et la police de caractères.

On spécifie les mots-clés par la commande ITEM_ADD.

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.

Pour que les commandes de type chaîne de caractères s’adressent soit aux mots-clés, soit aux commentaires, soit aux chaînes de caractères, soit aux nombres, soit à la gouttière, on "cible" ces commandes:

SYNEDIT_TARGET_IS_KEYWORD : les commandes de type FONT s'adressent aux mots-clés
SYNEDIT_TARGET_IS_COMMENT : les commandes de type FONT s'adressent aux commentaires
SYNEDIT_TARGET_IS_STRING : les commandes de type FONT s'adressent aux chaînes de caractères
SYNEDIT_TARGET_IS_GUTTER : les commandes de type FONT s'adressent à la gouttière (numérotation des lignes)
SYNEDIT_TARGET_IS_NUMBER : les commandes de type FONT s'adressent aux nombres
SYNEDIT_TARGET_IS_OBJECT : les commandes de type FONT s'adressent à tout le source, c'est la redirection par défaut


Un petit exemple pour illustrer:

Code:
SYNEDIT 1:' création d'un objet SYNEDIT

ITEM_ADD 1,"print":' print devient un mot-clé
ITEM_ADD 1,"input":' input devient un mot-clé
ITEM_ADD 1,"combo":' combo devient un mot-clé

SYNEDIT_TARGET_IS_KEYWORD
FONT_COLOR 1,0,0,255:' les mots-clés seront colorés en bleu
FONT_BOLD 1:' les mots-clés seront en style gras

SYNEDIT_TARGET_IS_NUMBER
FONT_COLOR 1,255,0,0:' les nombres seront colorés en rouge

SYNEDIT_TARGET_IS_GUTTER
FONT_ITALIC 1:' les numéros de ligne seront en italique

FILE_LOAD 1,"source.txt":' on charge un source

DIM P
WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE
' tous les "print" sont remplacés par "imprime"

Modification de Make_EXE

Je vais créer une option -r pour que Make_EXE exécute le source spécifié: MAKE_EXE -r "source.bas" H
H est le handle de l'appelant.
Ainsi, en cas d'erreur d'exécution, MAKE_EXE avertit l'appelant en déclenchant un événement utilisateur et en lui passant par exemple le numéro de la ligne et le code de l'erreur (ou d'autres informations) par les paramètres USER_EVENT_LPARAM et USER_EVENT_WPARAM.
L'appelant peut ainsi afficher un message d'erreur et positionner un curseur sur la ligne correspondante dans le source, ou la colorer...

Le compilateur

Il contiendra la version actuelle de Panoramic.
Il aura quelques restrictions (qui sont les mêmes que lors de la précédente version) et aussi quelques bugs qui seront à découvrir... Very Happy

_________________
Trois actions prioritaires Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:30

Humm ! Tous cela est très intéressant ! drunken

J'ai hâte de voir la suite. Enfin bon comme d'habitude... sunny
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trois actions prioritaires Empty
MessageSujet: re   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:30

Merci Jack.

Tout part d' une bonne idée mais cela dit, là, tu m' as perdu.
Embarassed
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:32

Citation :
Ainsi, en cas d'erreur d'exécution, MAKE_EXE avertit l'appelant en déclenchant un événement utilisateur et en lui passant par exemple le numéro de la ligne et le code de l'erreur (ou d'autres informations) par les paramètres USER_EVENT_LPARAM et USER_EVENT_WPARAM.
L'appelant peut ainsi afficher un message d'erreur et positionner un curseur sur la ligne correspondante dans le source, ou la colorer...

Oui Yannick pour cette partie je suis comme toi, mais bon, Jack ou Klaus nous expliquerons j'en suis sûr... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trois actions prioritaires Empty
MessageSujet: re   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:36

Un petit fichier texte de trois lignes en lieu et place de l' exe était beaucoup plus simple. Wink
Je ne sais pas si je vais pas rester sur KGF là, au moins, je commence à comprendre.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires EmptyMer 26 Avr 2017 - 21:43

Yannick a écrit:
Un petit fichier texte de trois lignes en lieu et place de l' exe était beaucoup plus simple.

Comment ton éditeur sera t-il averti que l'exécution a rencontré un problème et qu'un fichier texte est à exploiter ?

_________________
Trois actions prioritaires Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trois actions prioritaires Empty
MessageSujet: re   Trois actions prioritaires EmptyMer 26 Avr 2017 - 23:03

Actuellement la prévisualisation est lancé par la commande "Execute F" placé dans un timer de 20 seconde 
après l' appel à Make_Exe.exe. il me suffit de tester ( c' est déjà codé + ou - dans SimpleEditor )


voilà une partie de la procédure Preview()
Code:
PreviewFile$ = ActiveDir$+"SimpleEditorPreview.exe"
 if file_exists(PreviewFile$)=1 : file_delete PreviewFile$ : end_if
 
 ficlog$ = ActiveDir$+"SimpleEditorPreview.log"
                if file_exists(ficlog$)=1 : file_delete ficlog$ : end_if
 
 dir_change Dir_fic$
 execute_wait MakeExe$+chr$(32)+"-e"+chr$(32)+Tmp_File$
 dir_change Path$
 file_delete Tmp_file$
 
 laptime%=0
 Timer_on TimerPreVi%


et voilà le label du on_timer :

Code:
VerifPreVi:
    laptime%=laptime%+1
    if file_exists(PreviewFile$)=1
       Timer_off TimerPreVi%
       dir_change ActiveDir$
       execute PreviewFile$
       dir_change Path$
    else
       if file_exists(ficlog$)=1
          Timer_off TimerPreVi%
          file_open_read F_or%,ficlog$
          file_readln F_or%,v$ : ErrorLine%=val(v$)
          file_readln F_or%,v$ : ErrorType%=val(v$)
          file_readln F_or%,v$ : ErrorDef$ =v$
          file_close F_or%
          file_delete ficlog$
          mess2$ = "ERROR !"+chr$(13)+"line "+str$(ErrorLine%)+" - Type "+str$(ErrorType%)+chr$(13)
          mess2$ = mess$+ErrorDef$
          m2%= message_warning_ok(mess2$)
          GotoLine(ErrorLine%)
       end_if
    end_if
    if laptime%=40
       Timer_off TimerPreVi%
       m2% = message_warning_ok(PreviewFile$+chr$(13)+"Ce fichier est introuvable !")
    end_if
 return

J' ai mis 20 seconde environ au timer mais, pour exemple, Make_exe met moins de 5 secondes pour créer un exe partir du source de SimpleEditor qui fait 4152 lignes.

Pour des tests sur des sources plus long il faudra attendre la version 2.0 ou quelques années... Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trois actions prioritaires Empty
MessageSujet: re   Trois actions prioritaires EmptyMer 26 Avr 2017 - 23:28

Et tiens, je te retourne la question.
Comment fera t on pour savoir que les deux variables ont changés
Perso, j' ai rien pipé à User_Event_LParam et sa copine.
Comme je suis perdu sur les Command et Library mais c' est un autre sujet.

Edit: 

Mais je n' ai rien contre un cours magistral, simple, clair 
comme pour un gosse de 46 piges qui n' a pas trop usé les bancs de l' école.
Laughing
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires EmptyJeu 27 Avr 2017 - 1:12

Quelles belles nouvelles! Very Happy
Concernant l'objet synedit, auras t-on la possibilité de positionner le curseur sur une ligne en particulier? Et pour faire de la sélection de texte à la souris, pourras t-on retrouver le bloc de texte surligné par la souris? Ca serait utile pour mettre un bloc en commentaire par exemple, l'indenter, le déplacer, etc...

Jack a écrit:
Comment ton éditeur sera t-il averti que l'exécution a rencontré un problème et qu'un fichier texte est à exploiter ?
Après un EXECUTE_WAIT "make_exe -r source.bas", si l'exécution a rencontré un problème, make_exe s'arrête sans avertissement et génère un fichier d'erreur. Il suffira de vérifier la présence de ce fichier pour l'exploiter. Ce fichier est supprimé à chaque lancement de make_exe, donc si pas de fichier, pas d'erreur.

Jack a écrit:
Il aura quelques restrictions (qui sont les mêmes que lors de la précédente version) et aussi quelques bugs qui seront à découvrir...
en voilà 2 en relation avec 'make_exe":
la commande 'EXECUTE' ne supporte pas le passage de paramètre, et du coup, n'éxecute rien
la commande 'EXECUTE_WAIT' ne supporte pas les noms long de répertoire, et les pramètres passés à cette commande sont interprété comme des fichier à lancer; cela génère des erreurs de fichiers introuvables
source de test:
Code:
left 0,1000
 print "Test execute"
' dir_change "C:\Program Files\Panoramic Editor V 0.9.27"

' execute_wait "C:\Program Files\Panoramic Editor V 0.9.27\make_exeDL.exe -r source.bas"   :' espaces non supporté

 execute_wait "C:\PROGRA~1\PANORA~1.27\make_exeDL.exe -r source.bas" : end                :' fichier "-r source.bas" non trouvé


' execute "C:\Program Files\Panoramic Editor V 0.9.27\make_exeDL.exe -r source.bas"        :' make_exeDL.exe non éxecuté
 
' execute "C:\Program Files\Panoramic Editor V 0.9.27\make_exeDL.exe"        :' ok

et le source du fichier make_exeDL.exe:
Code:
dim i
for i=0 to param_number
print "paramètre n°";i;" = ";param_value$(i)
next i
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires EmptyJeu 27 Avr 2017 - 8:58

Super Nouvelle et ne t'inquiète pas Yannick: moi j'ai compris alors tu penses bien que Klaus nous fera rapidos une mise en application dans sa version de l'éditeur dont tu pourras t'inspirer et qu'il t'aidera à mettre à pratique comme à son habitude. C'est très propre comme fonctionnement et ça évite de créer des fichiers partout (avec ou sans problème d'espaces ou de noms courts/ long, de changement de répertoire etc ...)
Revenir en haut Aller en bas
Contenu sponsorisé





Trois actions prioritaires Empty
MessageSujet: Re: Trois actions prioritaires   Trois actions prioritaires Empty

Revenir en haut Aller en bas
 
Trois actions prioritaires
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Actions multiples ?
» Bases mathématiques du graphisme à 3 dimensions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: