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.
recherche des boucles IF/END_IF Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
recherche des boucles IF/END_IF Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
recherche des boucles IF/END_IF Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
recherche des boucles IF/END_IF Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
recherche des boucles IF/END_IF Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
recherche des boucles IF/END_IF Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
recherche des boucles IF/END_IF Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
recherche des boucles IF/END_IF Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
recherche des boucles IF/END_IF Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
recherche des boucles IF/END_IF Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
recherche des boucles IF/END_IF Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
recherche des boucles IF/END_IF Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
recherche des boucles IF/END_IF Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
recherche des boucles IF/END_IF Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
recherche des boucles IF/END_IF Emptypar leclode Ven 20 Sep 2024 - 19: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
Le Deal du moment :
SSD interne Crucial BX500 2,5″ SATA – 500 ...
Voir le deal
29.99 €

 

 recherche des boucles IF/END_IF

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




recherche des boucles IF/END_IF Empty
MessageSujet: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptySam 28 Juil 2012 - 19:41

mise à jour dimanche 29/07/12
Bonjour,
J'avais déjà fais cela, sans me souvenir si je l'ai publié ou non, et je n'ai rien retrouvé. Ni sur le forum, ni sur mon ordi.
Je pense que le programme est resté sur mon viel ordi. Il s'agit de retrouver les if et end_if lorsque qu'au démarrage, on a l'apparition de la boite vous informant que vous avez plus de IF que de END_IF ou l'inverse.

Je suis bloqué par mon programme car à force de modifier la méthode, je me trouve avec cette erreur, sans arrivé à la retrouver (plus de 2200lignes pour l'instant)

Donc ce programme m'a permit de restituer cette erreur.
Très certainement il y a des cas qui peuvent poser problème, toujours est-il que malgrès différent type de codage, cela à marché. Je ne me suis occupé que de mon problème, avec if et end_if, pour reprendre mon programme bloqué.
Code:

' RETROUVER les boucles if

label coller , ouvrir , depile , ligne ,saut , label , return
dim ouv$,fer$,sinon$,alor$ ,f$
dim separ$, explode%, copie$, v_explode%, mot$(1000), nb_coord% ,g% , mn$ ,l% ,lig$ , sp% , d$ , d% ,saut$
dim a%,a$,m$,b%,b$ ,li%(10000,2) ,c$
ouv$="IF " :fer$="END_IF" : sinon$="ELSE" :alor$=" THEN "

' choix de memo, vu qu'il est le seul qui puisse recevoir le presse-paier
memo  1:left 1,screen_x -width(0)-10:top 1,10:width 1,width(0)-20:height 1,height(0)-130 :bar_both 1 : hide 1

button 2:left 2, 10:width 2,60:caption 2,"coller" :on_click 2,coller
button 3:left 3,100:width 3,60:caption 3,"ouvrir" :on_click 3,ouvrir
open_dialog 5
list  6:top 6,40:height 6,height(0)-100:width 6,400 :font_name 6,"Courier New" : hide 6
dlist 10:' left 10,620:top 10,:width 10,300
alpha  8:top 8,height(1)+70:left 8,620
END
coller:
    clipboard_paste 1 :gosub depile
return
ouvrir:
    filter 5,"Choisir le fichier|*.bas;*.bak;*.txt"
    f$=file_name$(5)
    if f$ <> "_" then file_load 1,f$

' ---------------------------------'
depile:
    ' g%: guillemet
    g%= 0  : sp% = 1
    if count(1)>0
        for a%=1 to count(1)
            caption 0,str$(a%) +" / "+str$(count(1))
            a$= item_read$(1,a%) : m$ = trim$(upper$(a$)) :g%=0 :clear 10 :l%=0 :c$=""
            if left$(m$,2)="' " or left$(m$,4) = "REM "
            else
            for b%=1 to len(m$)
                b$=mid$(m$,b%,1)
                if b$=chr$(34) then g%=-1-g%
                if b$=":" and g%=0
                    item_add 10,trim$(c$) : c$=""
                    mn$=trim$(mid$(m$,b%+1,len(m$)))
                    if left$(mn$,2)="' "  or left$(mn$,4)="REM " then c$="":exit_for
                    if c$ <> "" then item_add 10,trim$(c$)
                else
                    c$=c$+b$
                end_if
            next b%
            item_add 10,trim$(c$)
           
            end_if
            if scancode=27 then exit_for
           
            if count(10)>0
                ' on commence à regarder les boucles /if/
                for b%=1 to count(10)
                    ' on peut prendre a$, on a fini la ligne
                    a$ = item_read$(10,b%)
                  ' caption 8,a$
                    b$ =""
                    if left$(a$,3) = ouv$ and instr(a$,alor$) > 0  :' "/if et then"
                        b$="<**IF/THEN**>  "
                        gosub ligne 
                    else
                        ' if sans then
                        if left$(a$,3) = ouv$
                            gosub ligne
                            sp%=sp% + 1
                        end_if
                    end_if
                    ' ligne avec else
                    if left$(a$,4) = sinon$
                        sp%=sp%-1
                        gosub ligne
                        sp% = sp% +1
                    end_if
                    ' ligne avec end_if
                    if left$(a$,6) = fer$
                        sp%=sp%-1
                        gosub ligne
                        gosub saut
                    end_if
                    if left$(a$,6) = "RETURN" then b$=">>> " :gosub ligne:gosub return
                    if right$(item_read$(1,a%),1) = ":" then gosub label :exit_for
                next b%
            end_if
          ' display
        next a%
        show 6 :full_space 0:full_space 6
    end_if
return

ligne:
  d$="" : for d%=1 to sp%:d$=d$+"|  ":next d%
  if sp% <1  then d$=""
  lig$ = right$("    "+str$(a%),5)
  item_add 6,lig$ + d$ + b$ + trim$(item_read$(1,a%))
return
' ------
return:
d$="":for d%=1 to sp%:d$=d$+"|...":next d%
item_add 6,"....." + d$ + STRING$(70,".") +" Ligne RETURN ......"
return
label:
item_add 6,"LABEL ===>" + trim$(item_read$(1,a%))
item_add 6,"**********" + STRING$( len( trim$(item_read$(1,a%))),"*")
return
saut:
d$="":for d%=1 to sp%:d$=d$+"|  ":next d%
item_add 6,"    " + d$
return

Il reste des trucs du débogage, mais n'apparaissent pas à l'exécution.


Dernière édition par cosmos70 le Dim 29 Juil 2012 - 11:32, édité 2 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptySam 28 Juil 2012 - 20:05

Ça pourra toujours servir.
Je prends pour apprendre. study

lol! lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptyDim 29 Juil 2012 - 11:33

Avant de mettre le programme aux oubliettes un certain temps, j'ai apporté des améliorations.
Versions plus lisible, les boucles plus facile à suivre.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptyDim 29 Juil 2012 - 23:48

Merci Cosmos, c'est le genre de "petites" fonctions qui peuvent faire gagner beaucoup de temps
Revenir en haut Aller en bas
Invité
Invité




recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptyLun 30 Juil 2012 - 0:26

Merci.
Oui effectivement, Mais depuis j'ai eu un autre problème avec les message d'erreurs qu'on a lorsqu'on a un débordement sur une liste (lire plus de lignes qu'il n'y en a).
Sur la quantité de listes, pas moyen de trouver où il y avait une erreur.
J'ai essayé avec l'exemple que j'ai mis avec le timer, pour lire une variable. Cela me provoquait une erreur sans retour de repeat, problème qu'on rencontre, lorsque le timer stoppe une fonction en cour qui n'est pas fini, puis dépassement de pile (+ de 1000 return)
Finalement j'ai trouvé une autre solution, qui elle ne pose pas de problème:
je fais une forme suplémentaire de 50 x 30 pixel, sans la bordure, et avec un bouton. Et à chaque entré de sous/programme, et chaque sortie, je fais caption x,number_current_line, où x est le numero de bouton.

Chaque fois qu'il y a ce genre d'erreur, il y a un blocage, et Panoramic ne se reprend plus normalement. Donc le numéro qui est affiché sur le bouton, est le dernier valide. Il suffit de regarder les lignes qui suivent pour trouver le list correspondant. Et "caption x,number_current_line" on peut le répéter vers l'approche de l'erreur, si il y a plusieurs listes, et un doute. Il suffit de décaler la forme 0 un peu vers le bas, pour suivre les lignes. ÉVidemment si le caption 0, n'est pas utilisé, on peut le prendre à la place.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptyLun 30 Juil 2012 - 1:03

En effet, un moyen comme un autre de voir où ça plante. Mais bon au lieu du bouton tu pourrais aussi changer un alpha par exemple. Mais bon, ce n'est pas le plus important, le plus important étant en effet de voir où ça bloque. Ça me rappel un peu le principe des points d’arrêt courant lors d'un debuggage
Revenir en haut Aller en bas
Invité
Invité




recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF EmptyLun 30 Juil 2012 - 8:31

Bonjour,
Oui tu as raison. J'ai mis bouton car sur le coup, j'ai pensé que le bouton se place au dessus des autres objets. Mais comme c'est une autre forme, et qu'en Panoramic, on ne peut forcer une forme par dessus une autre, seulement provisoirement, et to_foreground n'est qu'instantané. Mais c'est pas important.
Revenir en haut Aller en bas
Contenu sponsorisé





recherche des boucles IF/END_IF Empty
MessageSujet: Re: recherche des boucles IF/END_IF   recherche des boucles IF/END_IF Empty

Revenir en haut Aller en bas
 
recherche des boucles IF/END_IF
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» PANORAMIC V0.9.13
» Resultat de couleur
» Problème de boucles FOR...NEXT
» Gestion des boucles FOR, REPEAT et WHILE
» Recherche google

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: