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
» Gestion d'un système client-serveur.
indentation de lignes. Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
indentation de lignes. Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
indentation de lignes. Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
indentation de lignes. Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
indentation de lignes. Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
indentation de lignes. Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
indentation de lignes. Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
indentation de lignes. Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
indentation de lignes. Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
indentation de lignes. Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
indentation de lignes. Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
indentation de lignes. Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
indentation de lignes. Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
indentation de lignes. Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
indentation de lignes. Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 indentation de lignes.

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




indentation de lignes. Empty
MessageSujet: indentation de lignes.   indentation de lignes. EmptyJeu 17 Mai 2012 - 20:17

J'ai remis une version, où j'ai mis des variables à la place des mots-clés
Mais cela ne suffit pas, il faut aussi contrôler les chaines avec les mots-clés.

Je crois que cela a déjà était fait. Peut-être par JL35 ou Nardo.
Si c'est vrai, c'est ma version. Vu que c'est devant moi.
On copie le code où on veut mettre de l'ordre dans l'indentation dans son écran.
On lance le programme, on met l'indentation qu'on veut dans l'edit. On colle et go on lance. On peut récupérer ensuite dans le presse papier.

Code:

' modifier l'incrémentation des lignes
dim a%,b%,a$,b$ , x% , a1$ ,flag%  ,d%
dim fo%(20),wh%(20),re%(20),se%(20),ca%(20), if%(20) ,th$ ,n% ,g%
dim for%,whi%,rep%,sel%,cas%,fi%
th$="THEN "  : d%=2
' le mieux est de remplacer les mots clés par des variables, car la lecture du programme, le texte est pris en compte
dim for$,while$,repeat$,select$,case$,if$,then$,end_if$,end_while$,until$,end_select$,next$ ,else$ ,return$
for$="FOR "
while$ = "WHILE "
repeat$="REPEAT"
select$="SELECT "
case$="CASE "
if$="IF "
then$="THEN "
end_if$="END_IF"
next$="NEXT "
end_while$="END_WHILE"
until$="UNTIL "
end_select$="END_SELECT"
else$="ELSE"
return$="RETURN"

label traitement , marque , next1 ,copie , coller
full_space 0
memo 1:bar_both 1 :width 1,width(0)-30:height 1,height(0)-80:top 1,20:left 1,5 :font_name 1,"Courier New"
button 2:width 2,70:height 2,20:caption 2,"coller"        : on_click 2,copie
button 3:width 3,70:height 3,20:caption 3,"go":left 3,100: on_click 3,traitement
edit  4:width 4,70:height 4,20:text 4,4 :left 4,200
button 5:width 5,70:height 5,20:caption 5,"copier":left 5,300:on_click 5,coller
end
' ===================================
copie:
  clipboard_paste 1
return

coller:
  if count(1)>0
      b%=0
      for a%=1 to count(1): b%=b%+len(item_read$(1,a%))+2 : next a%
      select_text 1,1,b%
      a$=select_read$(1)
      clipboard_string_copy a$
  end_if
return

traitement:
d%=text$(4)
x%=1
  for a%=1 to count(1)
      caption 0,a%
      a$=trim$(item_read$(1,a%)) : a1$=upper$(a$)
      ' -----------------------------------------
      if left$(a1$,3)= if$
        if%(fi%) = x% :fi%=fi%+1:gosub marque :n%=instr(a1$,then$):g%=instr(a1$,chr$(34)+then$)
        if n% > 0 and g% =0 then fi%=fi%-1:x% = if%(fi%)  :else : x%=x%+d%
        goto next1
      end_if
     
      if left$(a1$,4)= for$
        fo%(for%) = x% :for%=for%+1  :gosub marque
        if instr(a1$,next$) > 0 then for%=for%-1: x%=fo%(for%) :else:x%=x%+d%
        goto next1
      end_if
     
      if left$(a1$,6)= while$
        wh%(whi%) = x% : whi%=whi%+1  :gosub marque
        if instr(a1$,END_WHILE$) > 0 then whi%=whi%-1 :  x%=wh%(whi%) :else  :x%=x%+d%
        goto next1
      end_if

      if left$(a1$,6)= REPEAT$
        re%(rep%) = x% :rep%=rep%+1  :gosub marque
        if instr(a1$,UNTIL$) > 0 then rep%=rep%-1 :  x%=re%(rep%):else :x%=x%+d%
        goto next1
      end_if

      if left$(a1$,7)= SELECT$
        se%(sel%) =x% : sel%=sel%+1:gosub marque
        if instr(a1$,END_SELECT$) > 0 then sel%=sel%-1:  x%=se%(sel%)  :else:x%=x%+d%
        goto next1
      end_if

      if left$(a1$,5)=CASE$
        gosub marque : goto next1
      end_if
     
      if left$(a1$,6)= END_IF$ then fi%=fi%-1:x%=if%(fi%):gosub marque:goto next1
      if left$(a1$,4)=ELSE$ then x%=if%(fi%-1):gosub marque: x%=x%+d% :goto next1
      if left$(a1$,9)=END_WHILE$ then whi%=whi%-1:  x%=wh%(whi%):gosub marque:goto next1
      if left$(a1$,6)=UNTIL$ then rep%=rep%-1:  x%=re%(rep%):gosub marque:goto next1
      if left$(a1$,5)=NEXT$  then for%=for%-1: x%=fo%(for%):gosub marque:goto next1
      if left$(a1$,10)=END_SELECT$ then sel%=sel%-1:gosub marque:goto next1
      if left$(a1$,6)=RETURN$ then x%=0:gosub marque:goto next1
      if right$(a$,1)=":"
        gosub marque
        if x%=0 then x%=3
        goto next1
      end_if
      if x%>0
        item_delete 1,a%:item_insert 1,a%,string$(x%," ")+a$
      else
        item_delete 1,a%:item_insert 1,a%,a$
      end_if
      next1:
  next a%
return

marque:
      if x%>0
        item_delete 1,a%:item_insert 1,a%,string$(x%," ")+a$
      else
        item_delete 1,a%:item_insert 1,a%,a$
      end_if
return

Je viens d'essayer avec un autre programme, et j'ai un problème avec next.
Malheureusement, je ne peux pas supprimer. Pourtant les essais étaient concluant.


Dernière édition par cosmos70 le Ven 18 Mai 2012 - 17:50, édité 1 fois
Revenir en haut Aller en bas
Minibug

Minibug


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

indentation de lignes. Empty
MessageSujet: Re: indentation de lignes.   indentation de lignes. EmptyVen 18 Mai 2012 - 15:26

bonjour cosmos70

Je pense avoir resolu ton probleme en remplacant la variable next1 part nxt1 car elle interfere dans l'indentation.

dis-moi ce que tu en pense.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

indentation de lignes. Empty
MessageSujet: Re: indentation de lignes.   indentation de lignes. EmptyVen 18 Mai 2012 - 17:09

En fait le problème vient d'une double déclaration de LABEL ligne 6 et 88.

A+
Revenir en haut Aller en bas
Invité
Invité




indentation de lignes. Empty
MessageSujet: Re: indentation de lignes.   indentation de lignes. EmptyVen 18 Mai 2012 - 17:24

Bonjour;
C'est plus compliqué que cela, et franchement je n'ai pas le temps de m'en occupé.
Le programme fonctionne puisque j'ai essayé plusieurs programmes avec succès. Seul le programme que je propose, il ne marche pas car les mots-clés sont entre-guillemets, et j'ai utilisé l'instruction "INST()". Ce qui fait qu'il ne distingue pas la différence entre une chaine et un mot-clé.
Ayant fait ce programme rapidement pour mieux présenter et le déboguer, un programme en cours. il n'était pas prévu que je m'attarde dessus. Vu qu'il fonctionnait pour ce que je faisais, je me suis dit que je pouvais le mettre sur le forum. Dès que je l'ai mis, j'ai voulu m'en servir pour la présentation de celui-ci, et là, j'ai vu le problème. J'aurais voulu le retiter, mais impossible, car ce programme n'est pas ma préoccupation, je suis sur autre chose. Si l'un d'entre vous veut le reprendre, pas de problème. J'ai trop de choses à faire ailleurs.
Il faut faire le teste des mots-clés dans une chaine.

Je viens de mettre une version avec les mots-clés dans des variables, que j'avais fait ausitôt après.
Revenir en haut Aller en bas
Invité
Invité




indentation de lignes. Empty
MessageSujet: Re: indentation de lignes.   indentation de lignes. EmptyVen 18 Mai 2012 - 18:02

Dès que je m'envais, je constate quel con je suis. J'ai mis des mot-clés en variables, et INSTR(), ne s'occupera pas de "$" à la fin. Il faut faire une faute dans chacune des variables mots-clés, en mettant par exemple un trait de soulignement entre la première et la seconde lettre de chacun des mots-clés. Tout cela pour aller vite!! Sad
Revenir en haut Aller en bas
Contenu sponsorisé





indentation de lignes. Empty
MessageSujet: Re: indentation de lignes.   indentation de lignes. Empty

Revenir en haut Aller en bas
 
indentation de lignes.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Les deux lignes
» Lignes ondulées
» Tracé de lignes
» Un compteur de lignes de code source
» Affichage des numéros de lignes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: