| Mise en forme des sources | |
|
|
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Mise en forme des sources Dim 3 Jan 2010 - 14:44 | |
| Je suis en train d'écrire un petit utilitaire de mise en forme des sources .bas, pour: - mettre en majuscules tous les mots-clés - faire une indentation automatique sur les IF, FOR etc... Un exemple (avec ta permission jjn4, un petit bout de ton magnifique programme de calendrier universel ). AVANT: - Code:
-
' Calcul du jeudi de l'Ascension y=r+39 if y>92 j3=y-92 : m3=6 else j3=y-61 : m3=5 end_if ' Calcul du lundi de Pentecôte x=r+50 if x>92 j2=x-92 : m2=6 else j2=x-61 : m2=5 end_if ' Calcul du jour de la semaine et affichage c=val(left$(t$,2)) a=val(right$(t$,2)) if ex=1 then excel_start : excel_file_new 1 for m=1 to 12 for j=1 to 31 select m case 1 : t=0 case 2 : t=3 case 3 : t=3 case 4 : t=6 case 5 : t=1 case 6 : t=4 case 7 : t=6 case 8 : t=2 case 9 : t=5 case 10 : t=0 case 11 : t=3 case 12 : t=5 end_select if a=0 and m<3 p=(20-c)*2+int((c-1)/4)-5 else p=(19-c)*2+int(c/4)-4 end_if b=int(a/4) if a/4=int(a/4) and m<3 then b=b-1 s=(j+t+a+b+p)-7*int((j+t+a+b+p)/7) : s=s-int(s/7)*7 if j=31 and (m=2 or m=4 or m=6 or m=9 or m=11) then goto fin if (m=2 and j>29) or (m=2 and a/4<>int(a/4) and j>28) then goto fin if a=0 and c/4<>int(c/4) and m=2 and j=29 then goto fin e$="" : if s=0 then e$="***" if j=1 and m=5 and tt>1946 then e$="***" APRES: - Code:
-
' Calcul du jeudi de l'Ascension y=r+39 IF y>92 j3=y-92 : m3=6 ELSE j3=y-61 : m3=5 END_IF ' Calcul du lundi de Pentecôte x=r+50 IF x>92 j2=x-92 : m2=6 ELSE j2=x-61 : m2=5 END_IF ' Calcul du jour de la semaine et affichage c=VAL(LEFT$(t$,2)) a=VAL(RIGHT$(t$,2)) IF ex=1 THEN EXCEL_START : EXCEL_FILE_NEW 1 FOR m=1 TO 12 FOR j=1 TO 31 SELECT m CASE 1 : t=0 CASE 2 : t=3 CASE 3 : t=3 CASE 4 : t=6 CASE 5 : t=1 CASE 6 : t=4 CASE 7 : t=6 CASE 8 : t=2 CASE 9 : t=5 CASE 10 : t=0 CASE 11 : t=3 CASE 12 : t=5 END_SELECT IF a=0 AND m<3 p=(20-c)*2+INT((c-1)/4)-5 ELSE p=(19-c)*2+INT(c/4)-4 END_IF b=INT(a/4) IF a/4=INT(a/4) AND m<3 THEN b=b-1 s=(j+t+a+b+p)-7*INT((j+t+a+b+p)/7) : s=s-INT(s/7)*7 IF j=31 AND (m=2 OR m=4 OR m=6 OR m=9 OR m=11) THEN GOTO fin IF (m=2 AND j>29) OR (m=2 AND a/4<>INT(a/4) AND j>28) THEN GOTO fin IF a=0 AND c/4<>INT(c/4) AND m=2 AND j=29 THEN GOTO fin e$="" : if s=0 then e$="***" IF j=1 AND m=5 AND tt>1946 THEN e$="***" Personnellement ça me paraît plus lisible et plus facile à debugger. Avec éventuellement des options: - mots-clés avec seulement la 1ère lettre en majuscule - pas d'indentation à la demande: 1, 2, 3 ou 4 espaces. (ce serait bien que ces possibilités soient intégrées dans l'Editeur, mais il ne faut pas trop en demander...) | |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: oui Dim 3 Jan 2010 - 16:31 | |
| Ca peut effectivement en intéresser certains. Pour ce qui me concerne, je n'aime pas les majuscules et je ne mets que des petites indentations de 1 espace pour que ça prenne moins de place lorsque la ligne est longue. (dans l'exemple que tu prends, elles y étaient toutes, c'est l'éditor qui supprime certaines indentations) Maintenant, si c'est un jour intégré à l'éditor, pourquoi pas, si ça laisse le choix de le faire ou de ne pas le faire et aussi le choix de la taille d'une indentation automatique. (et que ça marche bien) (Après tout, si je n'aime pas les majuscules, c'est parce qu'il faut se coltiner la touche Shift, maintenant, si ça se fait tout seul... après tout, pourquoi pas, je reconnais que comme ça, c'est plus lisible. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Dim 3 Jan 2010 - 17:41 | |
| Ah, tu vois bien que tu vas y venir ! Maintenant je frôle la perfection (en toute modestie ), après avoir éliminé les cas particuliers (FOR..NEXT et autres REPEAT...UNTIL sur la même ligne). Et l'indentation est de longueur au choix. | |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Ouah ! Dim 3 Jan 2010 - 20:01 | |
| Super, finalement, ça sert, le perfectionnisme... Ah, si je peux chipoter un peu, la croix en haut à droite, n'est pas rouge, c'est que la dimension du form n'est pas bonne, non ? | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Dim 3 Jan 2010 - 20:52 | |
| C'est bien possible ! j'avoue que je ne me suis pas posé la question puisque ça marche très bien comme ça, elle ferme aussi bien qu'une rouge... Tu as raison, j'ai mis des dimensions quelconques au (à la ?) Form, si je mets du standard (par exemple 640x480) ça devient rouge... bizarre, c'est normal ? | |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: + Lun 4 Jan 2010 - 0:42 | |
| Ca devient comme ça si on diminue trop la taille de la form par rapport aux objets présents et leur dimension théoriques plutôt que réelles. | |
|
| |
Invité Invité
| Sujet: Re: Mise en forme des sources Lun 4 Jan 2010 - 0:54 | |
| Je ne réussi pas à l'exécuter ! |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Lun 4 Jan 2010 - 9:37 | |
| Pas étonnant, il n'y a pas de programme ! | |
|
| |
Invité Invité
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 1:55 | |
| Mais moi aussi je me demande ??? Il faudrait que quand ont rapetisse la fenêtre la bordure ne change pas et qu'il n'ait pas de barre ou que la bordure reste normal et barre apparait. COMME NORMAL ! |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 14:59 | |
| Moi je dimensionne mon Form 0 en fonction de la taille des objets qu'il contient, juste de façon à ne pas voir apparaître de barres de défilement inutiles, horizontale ou verticale. Donc les dimensions obtenues ne sont pas standard, mais ça ne me gêne pas (sauf la croix qui n'est pas rouge...).
@Nicolas: le code que j'ai mis ci-dessus était un exemple extrait d'un code de jjn4 mis en forme avec mon programme, mais pas du tout le programme lui-même, donc tu n'as pas pu l'essayer ! Ceci dit, si tu voulais l'essayer, toi ou un autre, je le fournirais bien volontiers, mais seulement s'il y a une demande, apparemment ça n'enthousiasme pas les foules. C'est bien possible que c'était une fausse bonne idée. | |
|
| |
Invité Invité
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 22:01 | |
| Tu pourrait rajouter une option de remettre en minuscules avec la fonction lower$. |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 22:43 | |
| Ca ne me paraît pas très utile dans la mesure où quand on tape le source à l'origine on tape tout en minuscules, pour aller plus vite, et que c'est simplement après qu'on peut éprouver le besoin de passer les mots-clés en majuscules... Et s'ils sont en majuscules je ne vois pas l'intérêt de les repasser en minuscules... | |
|
| |
Invité Invité
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 23:06 | |
| Oui mais si tu veux remettre en minuscules le code ça me parrait utile non ? |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mise en forme des sources Jeu 7 Jan 2010 - 23:12 | |
| C'est simplement les mots-clés qui sont concernés, pas le reste. Et je ne vois pas pourquoi on voudrait les remettre en minuscules après les avoir mis en majuscules... Ca ne serait évidemment pas plus difficile à faire, mais je n'en vois pas l'utilité. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Mise en forme des sources | |
| |
|
| |
| Mise en forme des sources | |
|