Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Plugicielle pour Panoramic | |
| | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 11:17 | |
| Le 5 de ta boucle: for a%=1 to 5: print ... : next a% Le 5, tu devrais le récupérer de ta commande dans une variable par exemple comme dans Nb_coord => Ca donnerait : for a%=1 to Nb_coord: print ... : next a% Du coup la boucle marcherai qu'il y ait une chaine ou 500, mais bon il faudra quand même que le programmeur teste qu'il y a bien au moins une chaine, mais bon, il faut bien qu'il pense et qu'il bosse encore un peu, quand même | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 13:43 | |
| Je ferais cela ce soir, à moins que tu t'y colles. Manque de temps. Précision: le memo du haut, c'est le programme tel qu'on l'imagine celui du milieu, c'est celui du haut modifié par ce programme. celui du bas, des contrôles. - Citation :
- tu veux faire trop de choses.
Non, j'essaye des idées. Je ferais ce dont j'ai besoin, et vu que c'est une partie en Panoramic, et lorsque la méthode sera bien compréhensible, par chacune, celui qui veut une commande, pourra rajouter un include, et le proposer, s'il le veut bien. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 15:13 | |
| Non, Cosmos, je ne disais pas "tu fais trop de choses dans ce sens là", c'était pour la librairie de commandes, mais tu as répondu juste après que ce n'était pas encore la libraire telle que tu la concevait, mais un programme de test qui montre comment sera la librairie quand tu t'y attaqueras. J'ai compris avec ta première réponse qu'en fait ce programme de test est la fusion de cette libraire est du programme qui montre ce que ça donne (le code source et le code transformé) Pour le moment, je préfères te laisser faire car je comprends à peu près où tu veux aller, mais pas dans les détails, c'est pour ça que je fais mes commentaires toujours de manière circonspectes, car parfois ça peut juste être par ce que je n'ai pas compris, mais c'est quand même de plus en plus clair et très prometteur. | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 19:18 | |
| Comme tu l'as demandé, j'ai rajouté :Nb_coord%. Mais je ne pense pas que cet utilitaire soit fini. il faut voir avec une variable qui serait un séparateur, et la chaine écrite en toutes lettres. Je fais aujourd'hui une pause. Il faut que je regarde pour mon programme d'accès direct, comme demande je ne sais plus Amboise je crois. Je pensais qu'il y aurait des réponses sur la faisabilité avec Panoramic. Il faut croire que non. Si c'est vraiment non, il faudra se repencher sur ce problème pour mettre quelque chose de plus simple. On s'est tous améliorés depuis 2009/2010. Bon je m'égare. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 0:17 | |
| 1ère modification 21 mai 2012 14h30 Seulement changer Définir par DEFINE. Le nom de l'include n'est pas changé pour l'instant: Définir.bas, car c'est une manoeuvre que vous devrez faire, selon que vous procédez par sauvegarde, ou suppression/sauvegarde ou rename. Le moment venuBon , il faut que j'intervienne avant que ce post soit fermé. Je viens de déboger les commandes pour ajouter des fonctions ou autres. Pour l'instant il n'est pas intégré au pluging. Il y a le programme principal qui devra être repris ensuite pour l'intégrer. Pour la mise au point il y a deux memo, qui m'ont servi au débogage, c'est memo 42 et memo 43, en bas. J'ai revu la conception des commandes. J'étais parti sur l'idée de faire 2 types de commandes avec IF_ devant et sans IF. Voir plus haut. Ceci est annulé. On peut mettre plusieurs commandes dans la même ligne. Voyons ce que cela donne en exemple: - Code:
-
dim chaine$, coord$(10) ,explode%,explode$,v_explode%,copie$,separ$,a%,Nb_coord% chaine$ = "nom|prénom|adresse|téléphone" print "bonjour" : coord$ = @EXPLODE("|",chaine$) :print "salut" : coord$ = @EXPLODE("|",chaine$) : ' commentaire MEMO 10 : @DEFINE{ 10 ,l80,t100,w300,h200,style size 12,"Courier New",yb,yi,y_,n/,[ec 255,0,0] ,[fc 0,100,255] } for a%=1 to Nb_coord%:print coord$(a%):next a%
J'ai fait 2 commandes: @EXPLODE et @DEFINEDa,s cette exemple, il y a deux commandes identiques dans la ligne 3, ce sont les deux mêmes par copier /coller, juste pour montrer ce que cela donne. On peut pour la fonction @EXPLODE , mettre le séparateur, soit entre guillemet, soit dans une chaine, soit dans un tableau, et c'est pareil pour la chaine à découper. J'ai découvert cette fonction, et je dois dire qu'elle est très intéressante pour nous, vu que la fonction INSTR() est incomplète, et que par le biais de la fonction @EXPLODE, on découpe directement la chaine, et on prend le nième du tableau généré. Quand à @DEFINIR que demande Jicehel, (Je vois et j'avais oublié de rectifier: J'ai mis des parenthèse pour @EXPLODE, et il faudra que je mette des accolades.pour être dans le même principe. J'ai choisi des accolades pour bien exclure la fonction, des autres instructions dans la même ligne. Ainsi si il y a TOP(10),, en recherchant la fin de l'instruction @DEFINE, cela aurait posé problème, à moins de regarder chaque caractère, pour trouver la séparation. Dans définir, il y a aussi des crochets pour les fonctions couleurs. Comment fonctionne cette instruction: @DEFINE{n° objet ,...) pour left, top, width, height, j'ai mis la première lettre de l'instruction. L'ordrre n'a pas d'importance, et tout est optionnel. Ensuite si volonté, on marque "style", size, la fonte est directement entre-guillemet. on vois par exemple: yb, ou nb pour yes BOLD, no BOLD, idem pour italic, siligné, c'est "_", barré c'est "/" Pour les couleurs: entre-crochets: ec=encre-couleur, fc=fond-couleur. cela donne le programme exécuté: - Code:
-
LABEL EXPLODE_1,EXPLODE_2 dim chaine$, coord$(10) ,explode%,explode$,v_explode%,copie$,separ$,a%,Nb_coord% chaine$ = "nom|prénom|adresse|téléphone" ' - [>coord$ = @EXPLODE("|",chaine$) <] - [>coord$ = @EXPLODE("|",chaine$) <] print "bonjour" :gosub EXPLODE_1:print "salut" :gosub EXPLODE_2:' commentaire ' MEMO 10 :LEFT 10 ,80:TOP 10 ,100:WIDTH 10 ,300:HEIGHT 10 ,200:FONT_SIZE 10 , 12:FONT_NAME 10 ,"Courier New":FONT_BOLD 10 :FONT_ITALIC 10 :FONT_UNDERLINE 10 :FONT_COLOR 10 , 255,0,0:COLOR 10 , 0,100,255 for a%=1 to Nb_coord%:print coord$(a%):next a% ' ------------ ------------ ------------ ------------ END:' ======== FONCTION: coord$ = @EXPLODE("|",chaine$) ======= N°1 ligne:3 EXPLODE_1: separ$= "|" explode%=1:copie$=chaine$ if right$(copie$,1)<> separ$ then copie$ = copie$ +separ$ repeat v_explode%=instr(copie$, separ$ ) if v_explode%>0 then coord$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 until v_explode%=0:Nb_coord%=explode%-1 RETURN ' ------------ ------------ ------------ ------------ END:' ======== FONCTION: coord$ = @EXPLODE("|",chaine$) ======= N°2 ligne:3 EXPLODE_2: separ$= "|" explode%=1:copie$=chaine$ if right$(copie$,1)<> separ$ then copie$ = copie$ +separ$ repeat v_explode%=instr(copie$, separ$ ) if v_explode%>0 then coord$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 until v_explode%=0:Nb_coord%=explode%-1 RETURN
Les fonctions sont remplacées par des gosub, pour comprendre la lecture du listing lors d'un débogage, lorsque c'est nécessaire (comme @EXPLODE), les appels de ces fonctions sont en commentaire. Le programme principal: - Code:
-
' ************* PROGRAMME DE TRAVAIL POUR METTRE AU POINT LES COMMANDES à RAJOUTER ********************
error_french Label SORTIE_INCLUDE:goto SORTIE_INCLUDE :' permet de mettre tous les includes entre cette ligne et SORTIE_INCLUDE ' ================== #INCLUDES =================== #INCLUDE "C:\Panoramic-Init\INCLUDES\Explode.bas" ' à voir si vous changer le nom de l'include par: define.bas #INCLUDE "C:\Panoramic-Init\INCLUDES\definir.bas"
' ================== DÉCLARATIONS =================== SORTIE_INCLUDE: ' LABEL des INCLUDES label EXPLODE,DEFINE ' ------------------------------------------------------------------------------ label traitement , fin ,selection , lire , err , sauve ,full dim fichier$ , cde% ,edit$ , er$ ,h, a$,b$, a%,f$ ,b% ,b1$ , objet% ,a1$ , c%,c$, flag% ,coller$ ,full% top 0,00 :width 0,1200 :height 0,850 ' ------------------------------------------------------------------------------ dim n% :' variables génériques de la fonction dim commande$ :' chaines contenant les mot-clés dim guil% :' flag guillemet pour voir si on est à l'intérieur d'une chaine dim dept% :' deux points, voir le début mot-clé et REM dim avant$ :' instruction sur la ligne précédente dim info$ :' visu des commandes de la ligne dim info% :' 0=autorise l'ajout d'info sinon 1 dim info_memoire$ :' garde l'info de la commande avant de savoir si info% = 0 au retour dim LABEL$ :' variable cumul de chaque label ajouté par commande dim nom_fonction$ :' nom du label ajouté à chaque commende dim numero_fonction%:' N° de la routine explode rajoutée (se rajoute à nom_fonction$ dim flag_cde$ :' variable contenant un flag par ligne de 44 et validant le code ou non (si 1 pas une commande) dim numero$ :' récupère le numéro d'objet ou variable de l'objet (comme top 10 par exemple) dim non% :' si 0: info$ montre la commande, si 1: ne montre pas
' ------------------------------------------------------------------------------ ' DIM pour EXPLODE: dim pref$ :' préfixe de @EXPLODE ce qui est avant dim trait$ :' traitement de la commande dim separ$ :' caractère de séparation dim ch$ :' la partie chaine d'explode
' les commandes s'ajoutent au fur et à mesure de leur création dans cette chaine, pour tester avec INSTR(, leur existance ' liste des commandes aoutées (limitées aux 5 premiers caractères) commande$="EXPLO DEFIN" ' 123456789012345 ' EXPLODE ' DEFINIR
' ensuite il suffira d'avoir un tableau de position dans cette chaine, pour trouver de suite la bonne ' position 1 pour EXPLO, position 7 pour DEFINIR
memo 40 :width 40,500 :bar_horizontal 40 :hint 40,"[40]: programme de départ à décortiquer"
' exemple pour mise au point: ' semblant de programme -- tel qu'il serait dans l'éditeur -- item_add 40,"dim chaine$, coord$(10) ,explode%,explode$,v_explode%,copie$,separ$,a%,Nb_coord%" item_add 40,"chaine$ = "+chr$(34)+ "nom|prénom|adresse|téléphone"+chr$(34) item_add 40," print "+chr$(34)+"bonjour" +chr$(34)+" : "+ " coord$ = @EXPLODE("+chr$(34)+"|"+chr$(34)+",chaine$) :print "+chr$(34)+"salut"+chr$(34)+" : ' commentaire" item_add 40,"MEMO 10: @DEFINE{ 10 ,l80,t100,w300,h200,style size 12,"+chr$(34)+"Courier New"+chr$(34)+",yb,yi,y_,n/,[ec 255,0,0] ,[fc 0,100,255] }" item_add 40,"for a%=1 to Nb_coord%:print coord$(a%):next a% "
' ---------------------------
memo 41:width 41,1000:top 41,100 :height 41,100 :color 41,255,255,220 :bar_both 41:hint 41,"[41]: programme recomposée "
memo 42:width 42,1000:top 42,435 :hint 42,"[42]: variables " memo 43:width 43,1000:top 43,540 :color 43,255,230,230 :height 43,140 :hint 43,"[43]: controle lignes...":bar_both 43 memo 44:width 44,520:left 44,605 :color 44,235,245,245 :bar_horizontal 44:hint 44, "[44]: lignes décomposées par ':' " memo 46:width 46,1000:top 46,210 :height 46,215:color 46,240,240,0:hint 46,"[46]: subroutine à récupérer et ajoutée à 41"
button 48:left 48,530:width 48,70:caption 48,"load" :top 48, 0:height 48,20:on_click 48,lire button 45:left 45,500:width 45,40:caption 45,"GO" :top 45,25:height 45,20:on_click 45,traitement button 47:left 47,540:width 47,50:caption 47,"quitte":top 47,50:height 47,20:on_click 47,fin button 50:left 50,550:width 50,50:caption 50,"save" :top 50,75:height 50,20:on_click 50,sauve:hint 50,"Save prg recomposé" button 51:left 51,500:width 51,50:caption 51,"Grand" :top 50,25:height 51,20:on_click 51,full open_dialog 49 on_click 40,traitement on_error_goto err END
' ============================================================================== selection: ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ' mettre ici la position de la commande dans commande$ ' "EXPLO DEFIN" ' 1 7 ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select n% case 1 : gosub EXPLODE case 7 : gosub DEFINE end_select return ' ------------------------------------------------------------------------------ err: message "erreur: ligne:"+ str$(error_line)+chr$(13)+ error_type$ +chr$(13)+a$ message flag_cde$ +chr$(9)+b$ return ' ------------------------------------------------------------------------------ traitement: LABEL$ ="LABEL " off_click 40 :clear 41:clear 42:clear 43:clear 44 :clear 46 :numero_fonction% = 1 for a%=1 to count(40) a$=item_read$(40,a%) n%= instr(a$,"@") :' (ALT-graph à) ' si on trouve @, il se peut que ce soit: une commande ou un rem ou dans le contenu d'un texte if n%>0 : ' ------ controle pour voir si commentaire avec ' et rem guil%=0 :c$="" : flag%=0 flag_cde$="" :' flag à 0 for b%=1 to len(a$) b$=mid$(a$,b%,1) if b$=chr$(34) then guil%=-1-guil% :' si -1 on est dans les guillemets if b$ = "@" and guil% = -1 then flag%=1 ' ----------------------------- if left$(upper$(ltrim$(c$)),4) ="REM " and guil%=-1 then flag%=1 if left$( ltrim$(c$),2) = "' " and guil%=-1 then flag%=1 ' ------------------- ' on ajoute chaque partie d'intercode de ligne dans 44 (ligne décomposée par ":" if b$=":" and guil%=0 and flag%=0 flag_cde$ = flag_cde$ +"0" c$=c$+b$ c$=left$(c$,instr(c$,":")-1) item_add 44,c$ c$="" : b$ ="" flag%=0 b$=ltrim$( mid$(a$,b%+1,len(a$))) ' on regarde si une instruction est présente commencent par "@" sans expression avant "@" if left$(b$,1) = "@" AND ( instr( commande$,mid$( upper$(b$),2,5) ) > 0 ) b$= left$(b$, instr(b$,"}")) :b$=trim$(b$) flag_cde$ = flag_cde$ +"0" item_add 44,b$ repeat : b%=b%+1 : until mid$(a$,b%,1)="}" :' on avance à la fin de la commande repeat : b%=b%+1 : until b%>len(a$) or mid$(a$,b%,1)=":" b$="" end_if end_if if len(b$)=1 then c$ = ltrim$(c$) +b$ next b%
if c$<>"" item_add 44,c$ flag_cde$ = flag_cde$ + "1" end_if
' DEUXIÊME PARTIE====================================================== ' ----------------fin de commentaire-------------- rem "lire chaque item de 44, et voir ceux avec @ " info$="' ": avant$="":nom_fonction$="":info_memoire$="":info%=0 ' ------------------------------------------------------------------ if count(44)>0 while count(44) > 0 a$ = item_read$(44,1) if flag_cde$ <>"" then flag% = val(left$(flag_cde$,1)) if flag_cde$ <>"" then flag_cde$ = mid$(flag_cde$,2,len(flag_cde$)) item_delete 44,1 n%=instr(a$,"@") if n%>0 and flag%=0 n%=instr(commande$,mid$( upper$(a$) ,n%+1,5) ) non%=0 if n%>0 if right$(rtrim$(a$),1)=":" then a$ = left$(rtrim$(a$),len(a$)-1) ' liste des commandes à éviter de mettre des infos qui surcharge if trim$( left$( upper$(a$),7)) = "@DEFINE" then non%=1 :info_memoire$="":' pour éviter de remontrer une commande dans info$ if non%=0 then info_memoire$=a$ gosub selection : ' traitement de la commande, selon la position n% dans commande$
' si il y a eu un détour, et que nom_fonction$ <>"" alors il faut l'ajouter au label ' ------------------------------------------------------------------ if nom_fonction$ <>"" if numero_fonction% = 1 LABEL$=LABEL$+nom_fonction$ else LABEL$=LABEL$+","+nom_fonction$ end_if numero_fonction%=numero_fonction%+1
if trim$(avant$)<>"" and RIGHT$(rtrim$(avant$),1) <> ":" then avant$=avant$ +":" avant$=avant$ + "gosub " + nom_fonction$ else if trim$(a$) <>"" then if right$(rtrim$(avant$),1)<>":" and trim$(avant$) <>"" then avant$=avant$ + ":" avant$ = avant$ + a$ end_if ' ------------------------------------------------------------------ end_if else if left$(trim$(a$),2) = "' " then non%=1 :info_memoire$="" if left$(upper$(a$),4)= "REM " then non%=1:info_memoire$="" if right$(rtrim$(avant$),1)<>":" and trim$(avant$) <>"" then avant$=avant$ + ":" avant$=avant$+a$ end_if ' ------------------------------------------------------------------ if non%=0 and info_memoire$ <>"" then info$= info$ + " - [>" + info_memoire$ + "<]":info_memoire$="" end_while end_if ' ------------------------------------------------------------------ if info$<>"" then item_add 41,info$ item_add 41,avant$ ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ else :' pas de caractère "©" dans la ligne item_add 41,a$ end_if next a%
' on rajoute les lignes des sous-programmes. if numero_fonction% > 1 item_insert 41,1, LABEL$ :' mettre au début la liste des nouvelles étiquettes if count(46) > 0 for a%=1 to count(46) item_add 41,item_read$(46,a%) next a% end_if end_if return ' ============================================================================== lire: filter 49,"lecture programme à ajouter|*.bas" fichier$= file_name$(49) if fichier$ <> "_" then file_load 40,fichier$ return
sauve: filter 49,"sauvegarde du programme à recomposé|*.bas" fichier$= file_name$(49) if right$(fichier$,4) <> ".bas" then fichier$=fichier$ +".bas" if fichier$ <> "_" then file_save 41,fichier$ return ' ============================================================================== full: full%=-1-full% if full% =-1 then full_space 43:hide 44:hide 46 : else:width 43,1000:height 43,140:top 43,540:show 44:show 46 return fin: terminate
include @EXPLODE, et comme c'est pour aller avec le plugiciel, il faut faire un dossier INCLUDES dans "C:\Panoramic-Init, et le mettre dedans. (toute cette partie est en basic, si vous voulez mettre ailleurs, libre à vous, vous allez dans le programme. - Code:
-
' instruction EXPLODE, découpant une chaine selon un séparateur "METHODE" chaine$ = "nom|prénom|adresse|téléphone" coord$ = @EXPLODE("|",chaine$) ou coord$ = @EXPLODE(separ$,chaine$) ou coord$ = @EXPLODE(separ$,"nom|prénom|adresse") ou coord$ = @EXPLODE(s$(1),chaine$(10) ) les strings peuvent être chaines, variables, tableaux "coord$" ' est en réalité un tableau de x éléments qu'il faut déclarer résultat: coord$(1) => nom coord$(2) => prénom ; coord$(3) => adresse ...... le nombre trouvé est récupéré par la variable: NB_coord%, et commence à "UN"
REM "@@@@@@@@@ LE PROGRAMME @@@@@@@@@" EXPLODE: n%=instr(upper$(a$),"@EXPLODE(" ) :' le teste sur cette commande était limité ( >EXPLO< ) 5 caractères if n%>0 pref$ = trim$(left$(a$,n%-1)) : if right$(pref$,1)= "=" then pref$=trim$(left$(pref$,len(pref$)-1)) item_add 46,"' ------------ ------------ ------------ ------------ " item_add 46,"END:' ======== FONCTION: "+a$+" ======= N°" + str$(numero_fonction%)+" ligne:"+str$(a%) trait$= trim$(mid$( a$,n%+9,len(a$))) separ$ = left$(trait$, instr(trait$,",")-1) :separ$=trim$(separ$) ch$= mid$(trait$, instr( trait$,",")+1,len(a$)) :ch$=trim$(ch$) if instr( ch$,":") >0 then ch$= trim$( left$( ch$ , instr(ch$,":") -1) ) if RIGHT$( ch$,1)=")" then ch$= left$(ch$, len(ch$) -1)
' --------------------------------------------------------------------------- ' pour separ$, si dans trait$, avant la virgule, on a '$' alors variable, si c'est '"' alors il faut mettre separ$= ".." nom_fonction$="EXPLODE_"+str$(numero_fonction%) item_add 46,nom_fonction$+":" ' --------------------------------------------------------------------------- IF right$(separ$,1) = "$" item_add 46,"separ$ = " +separ$ else if right$(separ$,1) = ")" item_add 46, "separ$= " +separ$ else item_add 46, "separ$= " + chr$(34) + separ$ +chr$(34) end_if end_if
item_add 46,"explode%=1:copie$=" + ch$ item_add 46,"if right$(copie$,1)<> separ$ then copie$ = copie$ +separ$ " item_add 46,"repeat" item_add 46," v_explode%=instr(copie$, separ$ )" item_add 46," if v_explode%>0 then " + pref$ +"(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1" item_add 46,"until v_explode%=0:Nb_coord%=explode%-1" item_add 46,"RETURN" end_if return ' ==============================================================================
INCLUDE @DEFINE: - Code:
-
' ==============================================================================
' prg INCLUDE pour définir les objets en une seule commande ' METHODE exemple encre color fond color ' MEMO 1: @DEFINE{1,l100,t200,w500,h600,style size 12,"Courier New",yb,yi,y_,y/,[ec 255,0,0] ,[fc 0,0,255] } ' sert à définir en une seule commande, les caractéristiques d'un objet commande: "@DEFINE{" + numéro objet, séparation par "," t100 = top N,100 l200 = left N,200 W100 = width N,100 H200 = height N,200 style......... size12 = font_size N,12 "Courier New" entre-guillemets la fonte sans rien préciser comme commande yb =yes bold = font_bold N nb =no bold = font_bold_off N yi = yes italic = font_italic N ni = no italic = font_italic_off N y_ = yes souligne = font_underline N n_ = no souligne = font_underline_off N y/ = yes barré = font_strike N n/ = no barré = font_strike N les couleurs sont encadrées par [] pour englober les virgules [ec 255,0,0] = font_color N ,255,0,0 [fc 0,0,255] = color N,0,0,255 fermeture de la commande par "}" ' toutes les commandes sont obtionnelles, seul style est ajouté pour l'ensemble des styles.
' MEMO 1: @DEFINIR{1,l100,t200,w500,h600,style size 12,"Courier New",yb,yi,y_,y/,[ec 255,0,0] ,[fc 0,0,255] } DEFINE: n%=instr(upper$(a$),"@DEFINE{" ) :' le teste sur cette commande était limité ( >DEFIN< ) 5 caractères if n% > 0 info_memoire$="" if n% > 1 then pref$ = left$(a$,n% -1) : a$ = mid$(a$,n%+9,len(a$)) ' a$=@DEFINIR{1,l100,t200,w500,h600,[style si ' IL FAUT RECUPERER LE NUMERO numero$=trim$( mid$(a$,10,10)):numero$=left$(numero$, instr(numero$,",")-1)
' left n% = instr(upper$(a$),"L") if n%>0 b$=mid$(a$,n%+1,10):b$=left$(b$,instr(b$,",")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "LEFT "+numero$+","+b$ end_if ' top n% = instr(upper$(a$),"T") if n%>0 b$=mid$(a$,n%+1,10):b$=left$(b$,instr(b$,",")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "TOP "+numero$+","+b$ end_if ' width n% = instr(upper$(a$),"W") if n%>0 b$=mid$(a$,n%+1,10):b$=left$(b$,instr(b$,",")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "WIDTH "+numero$+","+b$ end_if ' height n% = instr(upper$(a$),"H") if n%>0 b$=mid$(a$,n%+1,10):b$=left$(b$,instr(b$,",")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "HEIGHT "+numero$+","+b$ end_if ' style ----------- n% = instr(upper$(a$),"STYLE") if n%>0 b$=mid$(a$,n%+5,len(a$)) b$=left$(b$,instr(b$,"}")-1) if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" a$=b$ end_if ' size n% = instr(upper$(a$),"SIZE") if n%>0 b$=mid$(a$,n%+4,10):b$=left$(b$,instr(b$,",")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_SIZE "+numero$+","+b$ end_if ' fonte_name n% = instr(upper$(a$),chr$(34)) if n%>0 b$=mid$(a$,n%+1,50) b$=left$(b$, instr(b$,chr$(34) ) -1) if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_NAME "+numero$+","+chr$(34)+b$+chr$(34) end_if ' bold nb n% = instr(upper$(a$),"YB") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_BOLD "+numero$ end_if n% = instr(upper$(a$),"NB") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_BOLD_OFF "+numero$ end_if ' italic ni n% = instr(upper$(a$),"YI") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_ITALIC "+numero$ end_if n% = instr(upper$(a$),"NI") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_ITALIC_OFF "+numero$ end_if ' souligné n_ n% = instr(upper$(a$),"Y_") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_UNDERLINE "+numero$ end_if n% = instr(upper$(a$),"N_") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_UNDERLINE_OFF "+numero$ end_if ' barré n/ n% = instr(upper$(a$),"Y/") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_STRIKE "+numero$ end_if n% = instr(upper$(a$),"N_") if n%>0 if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_STRIKE_OFF "+numero$ end_if ' ,y/,[ec 255,0,0] ,[fc 0,0,255] } ' font_color : ec encre couleur n% = instr(upper$(a$),"[EC") if n%>0 b$=mid$(a$,n%+3,30) b$=left$(b$,instr(b$,"]")-1) if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "FONT_COLOR "+numero$+","+b$ end_if ' color : fc fond couleur n% = instr(upper$(a$),"[FC") if n%>0 b$=mid$(a$,n%+3,15):b$=left$(b$,instr(b$,"]")-1) :if right$(ltrim$(avant$),1) <> ":" then avant$=avant$+":" avant$ = avant$ + "COLOR "+numero$+","+b$ end_if a$="":b$="":c$="" end_if return
' ==============================================================================
J'ai volontairement fait pour chaque fonction identique, un sous programme, car cela permet de spécialiser. Ainsi, coordon$ =@explode("|",chaine$) ou tr$="/": adr$ =@explode(re$,"Tartufe/Pierre/21000 Dijon")... A vous de jouer! (je vois des fautes, je rectifirai plus tard.)
Dernière édition par cosmos70 le Lun 21 Mai 2012 - 14:34, édité 1 fois |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 0:26 | |
| Sans intervenir sur le fond, Cosmos70, j'ai juste une petite remarque.
Pour la cohérence, te ne ferais pas mieux d'utiliser des mots-clé, soit systématiquement en français, soit systématiquement en anglais ? EXPLODE est englais, DEFINIR est français. Ne m'en veux pas si j'ai loupé quelque chose. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 1:24 | |
| Ca avance bien Cosmos Sinon, je suis d'accord avec Klaus, comme c'est toi qui choisi ta syntaxe, autant tout mettre en anglais ou tout mettre en français Explode => EclateChaine ou au contraire Definir => Define | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 8:22 | |
| Bonjour, Pour les mot-clés, je crois avoir demandé votre avis, car la-dessus, j'ai peut d'idée. EXPLODE, c'est amboise qui en a parlé, et franchement je ne connais pas le mot français de remplacement. Pour DEFINIR, qu'est-ce que vous proposez? C'est vous qui parlez anglais. - Citation :
- Sans intervenir sur le fond, Cosmos70, j'ai juste une petite remarque.
Pourquoi ne donnes-tu pas ton avis, contrairement à ce que tu crois, il m'intéresse, même si je dois prendre une claque. Je sais bien que le plugiciel, il ne va pas beaucoup servir une fois fini. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 14:37 | |
| J'ai changé DEFINIR par DEFINE dans le poste plus haut.Il faut aussi que je regarde pour mettre des crochets à la place des parenthèses. Et c'est maintenant que j'ai envoyé que je le remarque. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 14:59 | |
| Cool cosmos, du coup, on sera vigilent et on te traduira en anglais quand nécessaire si besoin | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 18:33 | |
| Ok. Seulement, est-ce que cela correspond à ce que tu attends? Tu aurais vu cela comment? |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plugicielle pour Panoramic Lun 21 Mai 2012 - 19:39 | |
| Juste pour le plaisir: EXPLODE en français signifie EXPLOSER, mais peut-être plus judicieusement ECLATER. | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Ven 22 Juin 2012 - 0:59 | |
| Bonsoir. J'interviens aujourd'hui, juste que cela fait un mois que je ne suis intervenu sur ce sujet, et que je ne voudrai pas qu'il soir fermé comme cela. Le travail est en suspend, car je suis sur un autre programme qui prend beaucoup plus de temps que prévu, vu que je l'ai repris à zéro, ayant constaté qu'il fallait programmer des choses identiques à chaque fois, alors qu'une autre idée pouvait l'éviter. En fait je fais un Galipédia. Donc je fais un rappel pour éviter le blocage du sujet. Ce ne serait pas très propre de laisser le sujet ainsi. Si quelqu'un veut le prendre dans un an, ce ne sera pas évident de revoir le travail.
A ce propos, j'ai voulu faire une application pour le travail en cours, et je n'ai pas réussi. Déjà que lorsqu'il y a un problème de chargement sur une image, il ne donne pas le nom de celle-ci, de sorte que savoir sur toute une série d'images, laquelle est concernée? Ensuite une fois réussi, sans rien dire de plus, je n'ai pas l'icône Panoramic, et j'ai un icône DOS à la place. La question que je me pose, est de savoir si il y a une limite dans une application. La seconde question est la suivante. Si un exécutable est fait par exemle sur un disque virtuel, avec les fichiers inclus, dont le disque en question est la source, est-ce que cela fonctionne sur un autre ordi qui n'a pas ce disque d'installé? |
| | | Contenu sponsorisé
| Sujet: Re: Plugicielle pour Panoramic | |
| |
| | | | Plugicielle pour Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |