FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­GroupesGroupes  ­ConnexionConnexion  
Derniers sujets
» Fichier à accès direct
Aujourd'hui à 17:50 par cosmos70

» Sélection et position du curseur
Aujourd'hui à 16:56 par Jack

» Bizarrerie d'affichage
Aujourd'hui à 16:15 par Jean Claude

» Nouveau fil de discussion du forum
Aujourd'hui à 14:36 par Jack

» Un Combo non éditable.
Aujourd'hui à 9:19 par Jean Claude

» Un peu de détente...
Aujourd'hui à 0:32 par jjn4

» #INCLUDE
Aujourd'hui à 0:13 par Klaus

» Super album photo de famille
Hier à 23:56 par jjn4

» Aller à la ligne dans message ou tout autre string
Hier à 22:37 par JL35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2010
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier
Partager | 
 

 Mise en forme des sources

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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 Basketball ).

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...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4



Nombre de messages: 430
Date d'inscription: 13/09/2009

MessageSujet: 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.
Cool
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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 Very Happy ), 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4



Nombre de messages: 430
Date d'inscription: 13/09/2009

MessageSujet: 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 ?
Basketball
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4



Nombre de messages: 430
Date d'inscription: 13/09/2009

MessageSujet: +   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.
Idea
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Nicolas



Nombre de messages: 438
Localisation: Canada
Date d'inscription: 27/09/2009

MessageSujet: Re: Mise en forme des sources   Lun 4 Jan 2010 - 0:54

Je ne réussi pas à l'exécuter !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: Re: Mise en forme des sources   Lun 4 Jan 2010 - 9:37

Pas étonnant, il n'y a pas de programme !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nicolas



Nombre de messages: 438
Localisation: Canada
Date d'inscription: 27/09/2009

MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nicolas



Nombre de messages: 438
Localisation: Canada
Date d'inscription: 27/09/2009

MessageSujet: 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$.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nicolas



Nombre de messages: 438
Localisation: Canada
Date d'inscription: 27/09/2009

MessageSujet: 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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages: 874
Localisation: 77
Date d'inscription: 29/11/2007

MessageSujet: 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é.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

Mise en forme des sources

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Vos projets-