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 |
|
|
| Erreur sortie de SUB | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Erreur sortie de SUB Mer 26 Jan 2022 - 9:59 | |
| Une petite sub pour créer une ébauche de calendrier au format A4 pour une année donnée: - Code:
-
Cal_Annu(2022,12,1) width 0,1120: height 0,830 picture 1: width 1,1100: height 1,778 clipboard_paste 1 END ' ========================================================================================= SUB Cal_Annu(an,nm,m1) ' Ébauche calendrier A4 orientation paysage ' Année an, nm = 6 ou 12 mois, 1er mois m1 (=1 ou 7, cas 6 mois) ' résultat image dans le presse-papier DIM_LOCAL p,nm$(12),lm(12),nj$(6),x(12),y(32),x0,y0,yb,x1,y1,w,h,w1,h1,i DIM_LOCAL mm,jj,jsd,rjs,a$ p = 500: PICTURE p: HIDE p: WIDTH p,1100: HEIGHT p,778 2D_TARGET_IS p: PRINT_TARGET_IS p nm$(1)="JANVIER": nm$(2)="FÉVRIER": nm$(3)="MARS": nm$(4)="AVRIL" nm$(5)="MAI": nm$(6)="JUIN": nm$(7)="JUILLET": nm$(8)="AOÙT" nm$(9)="SEPTEMBRE": nm$(10)="OCTOBRE": nm$(11)="NOVEMBRE": nm$(12)="DÉCEMBRE" lm(1)=31: lm(2)=28: lm(3)=31: lm(4)=30: lm(5)=31: lm(6)=30: lm(7)=31 lm(8)=31: lm(9)=30: lm(10)=31: lm(11)=30: lm(12)=31 IF MOD(an,4)=0 AND (MOD(an,100)>0 OR MOD(an,400)=0) THEN lm(2) = 29 nj$(0)="DI": nj$(1)="Lu": nj$(2)="Ma": nj$(3)="Me": nj$(4)="Je" nj$(5)="Ve": nj$(6)="Sa" x0 = 22: y0 = 28: yb = 16: ' marges gauche, haut et bas (centré H) w = 1100-2*x0: h = 778-y0-yb: 2D_RECTANGLE x0,y0,x0+w,y0+h IF nm = 12 THEN m1 = 1: ' 1er mois w1 = w/nm: h1 = h/32: x(0) = x0 FOR i = 1 TO nm x(i) = x0+(i-1)*w1: 2D_LINE x(i),y0,x(i),y0+h NEXT i y(0) = y0 FOR i = 1 TO 32 y(i) = y0 + (i-1)*h1: 2D_LINE x0,y(i),x0+w,y(i) NEXT i FONT_NAME p,"DejaVu Sans Mono": FONT_SIZE p,11 PRINT_LOCATE 532,y0-18: FONT_BOLD p: PRINT STR$(an): FONT_BOLD_OFF p FONT_COLOR p,0,0,255 FOR i = 1 TO nm mm = i+m1-1: a$ = nm$(mm): jj = TEXT_WIDTH(a$,p) PRINT_LOCATE x(i)+(w1-jj)/2,y(1)+3: PRINT a$ NEXT i FONT_COLOR p,0,0,0: FONT_SIZE p,9 FOR i = 1 TO nm x1 = x(i)+4: y1 = y(2)+2 mm = i+m1-1 FOR jj = 1 TO lm(mm) ' jour semaine du jour jj, mois mm de l'année an -> rjs=0 Dim à 6 Sam jsd = an: IF mm<3 THEN jsd = jsd-1 jsd=INT(23*mm/9)+jj+4+an+INT(jsd/4)-INT(jsd/100)+INT(jsd/400) IF mm>=3 THEN jsd = jsd-2 rjs = jsd-7*INT(jsd/7): a$ = nj$(rjs)+RIGHT$(" "+STR$(jj),2): x1 = x(i)+4 IF rjs = 0 THEN FONT_COLOR p,128,0,0 PRINT_LOCATE x1,y1: PRINT a$: FONT_COLOR p,0,0,0 y1 = y1+h1 NEXT jj NEXT i CLIPBOARD_COPY p 2D_TARGET_IS 0: PRINT_TARGET_IS 0: DELETE p END_SUB ' ========================================================================================= Ça marche, le boulot se fait, et j'ai bien le résultat dans le presse-papier, mais j'ai une erreur sur le END_SUB que je ne m'explique pas: 'OK', puis:
Dernière édition par JL35 le Mer 26 Jan 2022 - 12:07, édité 1 fois | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 10:50 | |
| Bonjour JL35, bonjour à tous ! Oui, effectivement, tu as découvert un petit bug dans Panoramic. Ceci ne fonctionne pas : - Code:
-
test() end
sub test() dim_local lm(2),nj$(2) end_sub
Alors que ceci fonctionne : - Code:
-
test() end
sub test() dim_local nj$(2),lm(2) end_sub
En changeant l'ordre de déclaration des variables locales, tout rentre dans l'ordre. En attendant une correction dans une future version de Panoramic, pour fonctionner, ton source devient : - Code:
-
Cal_Annu(2022,12,1) width 0,1120: height 0,830 picture 1: width 1,1100: height 1,778 clipboard_paste 1 END ' ========================================================================================= SUB Cal_Annu(an,nm,m1) ' Ébauche calendrier A4 orientation paysage ' Année an, nm = 6 ou 12 mois, 1er mois m1 (=1 ou 7, cas 6 mois) ' résultat image dans le presse-papier DIM_LOCAL p,nm$(12),nj$(6),lm(12),x(12),y(32),x0,y0,yb,x1,y1,w,h,w1,h1,i DIM_LOCAL mm,jj,jsd,rjs,a$ p = 500: PICTURE p: HIDE p: WIDTH p,1100: HEIGHT p,778 2D_TARGET_IS p: PRINT_TARGET_IS p nm$(1)="JANVIER": nm$(2)="FÉVRIER": nm$(3)="MARS": nm$(4)="AVRIL" nm$(5)="MAU": nm$(6)="JUIN": nm$(7)="JUILLET": nm$(8)="AOÙT" nm$(9)="SEPIEMBRE": nm$(10)="OCTOBRE": nm$(11)="NOVEMBRE": nm$(12)="DÉCEMBRE" lm(1)=31: lm(2)=28: lm(3)=31: lm(4)=30: lm(5)=31: lm(6)=30: lm(7)=31 lm(8)=31: lm(9)=30: lm(10)=31: lm(11)=30: lm(12)=31 IF MOD(an,4)=0 AND (MOD(an,100)>0 OR MOD(an,400)=0) THEN lm(2) = 29 nj$(0)="DI": nj$(1)="Lu": nj$(2)="Ma": nj$(3)="Me": nj$(4)="Je" nj$(5)="Ve": nj$(6)="Sa" x0 = 22: y0 = 28: yb = 16: ' marges gauche, haut et bas (centré H) w = 1100-2*x0: h = 778-y0-yb: 2D_RECTANGLE x0,y0,x0+w,y0+h IF nm = 12 THEN m1 = 1: ' 1er mois w1 = w/nm: h1 = h/32: x(0) = x0 FOR i = 1 TO nm x(i) = x0+(i-1)*w1: 2D_LINE x(i),y0,x(i),y0+h NEXT i y(0) = y0 FOR i = 1 TO 32 y(i) = y0 + (i-1)*h1: 2D_LINE x0,y(i),x0+w,y(i) NEXT i FONT_NAME p,"DejaVu Sans Mono": FONT_SIZE p,11 PRINT_LOCATE 532,y0-18: FONT_BOLD p: PRINT STR$(an): FONT_BOLD_OFF p FONT_COLOR p,0,0,255 FOR i = 1 TO nm mm = i+m1-1: a$ = nm$(mm): jj = TEXT_WIDTH(a$,p) PRINT_LOCATE x(i)+(w1-jj)/2,y(1)+3: PRINT a$ NEXT i FONT_COLOR p,0,0,0: FONT_SIZE p,9 FOR i = 1 TO nm x1 = x(i)+4: y1 = y(2)+2 mm = i+m1-1 FOR jj = 1 TO lm(mm) ' jour semaine du jour jj, mois mm de l'année an -> rjs=0 Dim à 6 Sam jsd = an: IF mm<3 THEN jsd = jsd-1 jsd=INT(23*mm/9)+jj+4+an+INT(jsd/4)-INT(jsd/100)+INT(jsd/400) IF mm>=3 THEN jsd = jsd-2 rjs = jsd-7*INT(jsd/7): a$ = nj$(rjs)+RIGHT$(" "+STR$(jj),2): x1 = x(i)+4 IF rjs = 0 THEN FONT_COLOR p,128,0,0 PRINT_LOCATE x1,y1: PRINT a$: FONT_COLOR p,0,0,0 y1 = y1+h1 NEXT jj NEXT i CLIPBOARD_COPY p 2D_TARGET_IS 0: PRINT_TARGET_IS 0: DELETE p END_SUB ' ========================================================================================= Bonne continuation ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 11:02 | |
| Suite... @JL35
Tu as deux petites erreurs de frappe dans les noms des mois de MAI et SEPTEMBRE.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 12:12 | |
| Bonjour Marc, pour les erreurs de frappe, ce sont des modifs en vitesse au dernier moment, corrigé là_haut Génial de ta part d'avoir trouvé que ce sont des inversions de déclarations de variables qui résolvent le problème, effectivement ce n'est pas évident du tout ! et pas normal... bizarre que je n'avais pas encore rencontré ce problème ! Merci à toi en tout cas, et bonne journée ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 17:14 | |
| Bonjour à tous, tien tien ! JJN4va avoir de la concurrence | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 18:19 | |
| Eh, eh, de la concurrence, naît l'émulation ! Après cela, JL35 va devoir nous sortir un calendrier qui fait aussi le café, qui peut servir de grille-pain et de machine à laver, qui prévoit la météo et les résultats du loto, qui augmente les retraites et fait rajeunir, qui fait rouler les autos à l'eau et aux pets de vache, etc. Et j'en passe... ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Erreur sortie de SUB Mer 26 Jan 2022 - 18:58 | |
| Eh ! un peu de patience, c'est à l'étude...
Juste une question jj, est-ce que tu crois au Père Noël ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Erreur sortie de SUB Jeu 27 Jan 2022 - 11:06 | |
| Bonjour à tous, Moi j'y crois au père Noël. Tu as le temps JL35: j'ai appris à être patient. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Erreur sortie de SUB Ven 28 Jan 2022 - 12:08 | |
| Salut mon ami Jean Claude, Tu as raison, ça ne fait de mal à personne et c'est bon pour le moral ! Rendez-vous dans 11 mois... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Erreur sortie de SUB Ven 28 Jan 2022 - 16:24 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Erreur sortie de SUB | |
| |
| | | | Erreur sortie de SUB | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |