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
» Logiciel de planétarium.
indentation de lignes. Emptypar Jack Aujourd'hui à 9:03

» Un autre pense-bête...
indentation de lignes. Emptypar Froggy One Jeu 21 Nov 2024 - 14:54

» Récupération du contenu d'une page html.
indentation de lignes. Emptypar Pedro Sam 16 Nov 2024 - 13:04

» Décompilation
indentation de lignes. Emptypar JL35 Mar 12 Nov 2024 - 18:57

» Un album photos comme du temps des grands-mères
indentation de lignes. Emptypar jjn4 Mar 12 Nov 2024 - 16:23

» traitement d'une feuille excel
indentation de lignes. Emptypar jjn4 Jeu 7 Nov 2024 - 2:52

» Aide-mémoire mensuel
indentation de lignes. Emptypar jjn4 Lun 4 Nov 2024 - 17:56

» Des incomprèhension avec Timer
indentation de lignes. Emptypar Klaus Mer 30 Oct 2024 - 17:26

» KGF_dll - nouvelles versions
indentation de lignes. Emptypar Klaus Mar 29 Oct 2024 - 16:58

» instructions panoramic
indentation de lignes. Emptypar maelilou Lun 28 Oct 2024 - 18:51

» Figures fractales
indentation de lignes. Emptypar Marc Ven 25 Oct 2024 - 10:18

» Panoramic et Scanette
indentation de lignes. Emptypar Yannick Mer 25 Sep 2024 - 20:16

» Editeur d étiquette avec QR évolutif
indentation de lignes. Emptypar JL35 Lun 23 Sep 2024 - 20:40

» BUG QR Code DelphiZXingQRCode
indentation de lignes. Emptypar Yannick Dim 22 Sep 2024 - 9:40

» fichier.exe
indentation de lignes. Emptypar leclode Ven 20 Sep 2024 - 17:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
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 - 18: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 - 15:50, édité 1 fois
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
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 - 13: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 : 70
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 - 15: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 - 15: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 - 16: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
» Un compteur de lignes de code source
» EDITOR avec gestion des numéros de lignes
» 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: