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
» trop de fichiers en cours
Nombre d'objets  Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
Nombre d'objets  Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Nombre d'objets  Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Nombre d'objets  Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Nombre d'objets  Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Nombre d'objets  Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nombre d'objets  Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Nombre d'objets  Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Nombre d'objets  Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Nombre d'objets  Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Nombre d'objets  Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
Nombre d'objets  Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Nombre d'objets  Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Nombre d'objets  Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Nombre d'objets  Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Nombre d'objets

Aller en bas 
+4
Jack
659_minifly
Nardo26
JL35
8 participants
Aller à la page : 1, 2, 3, 4, 5  Suivant
AuteurMessage
JL35




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

Nombre d'objets  Empty
MessageSujet: Nombre d'objets    Nombre d'objets  EmptySam 23 Oct 2010 - 22:06

Je faisais une confusion, je croyais que la fonction NUMBER_OBJECTS donnait le dernier numéro d'objet utilisé, et en réalité c'est véritablement le nombre d'objets utilisés, comme indiqué dans la documentation.

En fait je viens de me faire piéger, pour définir un objet temporaire je lui attribuais le numéro NUMBER_OBJECTS+1, or cet objet peut très bien avoir déjà été défini s'il y a des trous dans la numérotation, d'où collision.

Ma remarque est que je ne vois pas l'intérêt de ce NUMBER_OBJECTS (quand a-t'on besoin du nombre d'objets utilisés ???), alors qu'il aurait été beaucoup plus utile de connaître le numéro du DERNIER objet défini, pour pouvoir définir un nouvel objet sans risque.
A ma connaissance, cette fonction n'existe pas.
Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptySam 23 Oct 2010 - 22:43


Si, je me sert aussi de cette instruction, pour trouver l'objet cliqué.
Ainsi au lieu de faire:
Code:

for a%= 1 to 10:if clicked(a%)=1 then instruction...
next a%
J'ai une procédure fonte: dans mes programmes, j'envoie dans cette procédure et celle-ci par cette instruction, sait qu'elle est objet cliqué, et réagit en rapport.

C'est très mal expliqué vu que je ne vais mettre tout un programme en construction pour le démontrer, mais réfléchis, tu verras que cette instruction est utile.

Je me suis trompé, j'ai confondu avec nomber_click
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 5:38

@JL35:
Tu dis ça parce que tu es en colère de t'être fait piégé ?!... Smile
Le contenu de number_objects n'a pas vraiment beaucoup d'importance, qu'il y ai 23 ou 457 dedans cela change quoi du moment que lorsque tu l'utilises, tu mémorises cette valeur dans une variable.

Cela donne l'occasion de fournir l'adresse de mon site dédié à Panoramic : http://nardo26.e-monsite.com (je l'ai rajouté dans mon profil, donc normalement, le bouton www doit rediriger vers celui-ci)
Regarde mes sources, tu verras que cette variable, je l'emploi à tout bout de champs! (cela me permet d'obtenir un numéro d'objet unique et non utilisé)

Citation :
pour définir un objet temporaire je lui attribuais le numéro NUMBER_OBJECTS+1, or cet objet peut très bien avoir déjà été défini s'il y a des trous dans la numérotation, d'où collision.
L'utilisation de number_objects pour déclarer un objet implique que TOUS les objets de ton prog doivent être déclaré par cette méthode...sinon tu risques la collision. Je sais c'est fastidieux mais au final c'est plus sympa (c'est mon avis) d'utiliser des noms de variable pour accéder aux objets que de manipuler des nombres.

Si tu as besoin de déclarer des objets temporaires, tu peux très bien faire ceci:
Code:
Dim Obj_temp%
...
...
...
toto:
  Obj_temp%=number_objects+1
  File_open_read Obj_temp%,"monFichier.cfg"
  ...
  file_close Obj_temp%
  delete Obj_temp%
 return
Revenir en haut Aller en bas
http://nardo26.lescigales.org
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 9:04

Bravo Nardo pour ton nouveau site
Il faut avoir du courage pour faire un site Félicitations. king

Dans certain programme il y a la commande Enum ou Enumeration

Enumeration 2000

Fenetre_principale
Bouton_Ok
Bouton_Annul
etc ....

End Enumeration

Ce qui en Panoramic donnerait:

Fenetre_principale% = 2000
Bouton_Ok% = 2001
Bouton_Annul% = 2002

Form Fenetre_principale%
width Fenetre_principale%,500

etc ...
Ce qui pour moi est beaucoup plus parlant qu'un numéro
( Ceci est valable a mon avis pour les grands programmes)
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 10:42

Bof, pas vraiment du courage...
le site lui-même est pour l'instant réduit à sa plus simple expression,
C'est juste une boite dans laquelle je met mes fichiers. C'est plus sympa qu'une connexion ftp, non ? Wink
Il est vrai qu'il faut avoir du temps à consacrer pour mettre à jour les pages...

La commande enum serait certainement utile sous panoramic ! et permettrait à JL35 par exemple d'avoir des 'trous' dans la numérotation des objets.
Quoique je n'en vois pas beaucoup l'interet... Wink

Une autre façon de voir cette syntaxe dans "l'esprit" de pano qui n'a pas vraiment de notion de bloc d'instruction (en dehors des boucles)
Code:
enum 2000,Fenetre_principale,Bouton_OK,Bouton_Annul,etc...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 10:58

Salut Nardo, je vais aller voir ce fameux site un de ces jours, aujourdhui pas trop le temps (tu sais ce que c'est, la retraite, même à 60 ans...)

Mais ton exemple de sous programme toto est exactement l'exemple de l'erreur que je faisais, de définir un nouvel objet (temporaire) par NUMBER_OBJECTS + 1 !!
Ça suppose toujours qu'il n'y ait pas de trous dans la numérotation (ou ce qui revient au même que tous les objets soient définis depuis le début par number_objects + 1, bon, c'est faisable et je l'ai déjà fait, mais ça suppose de donner un nom de variable à TOUS les objets. Et s'il y en a beaucoup ça peut devenir lourd).

C'est justement cette contrainte qui m'embête (tu remarqueras que je reste poli malgré ma colère Suspect ), j'aimerais bien connaître les numéros d'objets inutilisés donc libres. Ou, plus facile, le dernier numéro utilisé au moment donné.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 11:17

Oui cela deviens en peu lourd cette numérotation dès que l'on déclare beaucoup d'objets.

cf. mon prog de log : j'ai 300 lignes de déclaration d'objets!... Neutral
Peut être qu'en découpant le prog en plusieurs fichiers, cela le serait moins...

Mais je ne vois pas d'autres moyens pour s'affranchir des numéros d'objets.

Si on compare :
Code:
FORM 23
TOP 23,10
avec
Code:
DIM Form_toto%:Form_toto%=number_objects+1
FORM Form_toto%
TOP Form_toto%,10

C'est sûr que la déclaration est plus longue à écrire mais on gagne en lisibilité du prog.
Ce n'est pas forcement flagrant mais je l'ai déjà dis : question de maintenance c'est plus facile....
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 11:58

Je suis très ennuyé de répondre, vu qu'il n'y a jamais eus de réponses à ma proposition, ce qui laisse entendre, que ça n'en vaut pas la peine.

J'ai fais un programme qui permet de mettre des noms aux objets, en gardant la liste, il suffit de la reprendre pour rajouter ou incorporer d'autre nom.
A t-on mal compris le programme? Je ne peux répondre vu qu'il n'y a pas de suite.

Code:
  ' programme nommant les objets

  dim a$  ,c$ ,i% ,j%  ,d$, r%
  dim t$(100)

  width 0,1200:height 0,700
  memo 1 :left 1,50:width 1,1130 :height 1,350:font_size 1,14:font_name 1,"Lucida Console"
  item_add 1," récupérer par copier/coller, les >>DIM<< suivants:":item_add 1,""
 
  memo 2 :left 2,50:width 2,1130 :height 2,200:font_size 2,14:font_name 2,"Lucida Console":top 2,360
          color 2,231,235,198

  rem les noms des datas sont des exemples. Vous faitez votre propre liste.
  rem terminez la liste par $$$
      rem  " METTRE ICI LES NOMS CHOISIS "
  data cube,boite,camembert%,legume,chiendent,rose,plume,carotte,poireaux
  data voiture,bagnole,velo,carafe,soupe,verre, $$$

  c$="" :a$="dim ":i%=1
  repeat
      read c$:print c$
      if c$<>"$$$"
        a$=a$+c$+"," : t$(i%)=c$:i%=i%+1
        if len(a$)>70 then item_add 1,left$( a$ , len(a$) -1 ):a$="dim "
      end_if
  until c$="$$$"

  item_add 1,left$( a$ , len(a$) -1 )
  item_add 1,""

  data "reportez les variables dans votre programmes, avant de vous en servir "
  data "pour définir vos objets. Si vous voulez incorporer d'autres "
  data "objets, il suffit de reprendre ce programme, d'y mettre les noms à la place qui vous"
  data " convient, et de remplacer l'ensemble des noms, "
  data "par ceux-ci. Ainsi votre propre programme est automatiquement régénéré."

  read a$:read c$: item_add 1,a$+c$
  read a$:read c$: item_add 1,a$+c$
  read a$:item_add 1,a$

  item_add 2,"rem variables définissant les objets (à recopier)":item_add 2,""
  '      *******************************************************************
  r%=0  :rem "variable donnant le dernier objet, pour mettre à la suite " ' *
  '      *******************************************************************
  for j%=1 to i%-1
    d$=d$+t$(j%)+"="+ str$(j%+r%)
    if len(d$)>70
      item_add 2,d$:d$=""
    else
      d$=d$+" : "
    end_if
  next j%
  if d$<>"" then d$=trim$(d$):item_add 2,left$(d$,len(d$)-1)
  item_add 1,"":item_add 1,"pensez qu'un nom simple prend plus de place en mémoire qu'un nom avec % à la fin."
  item_add 1," ensuite on fait la liste avec par exemple:picture cube :edit boite .etc...

En lignes 13 et 14, les noms des objets sont définis, ensuite en lançant le programme, on récupère les noms qui serviront de numéro d'objet.

Je crois que j'abuse.
Modifié, j'ai trouvé une erreur


Dernière édition par cosmos70 le Dim 24 Oct 2010 - 13:02, édité 1 fois
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 12:31

Heu...J'ai pas bien pigé comment on doit utiliser ton programme...
tu peux m'expliquer avec un petit exemple?
Bon je sais que c'est l'heure de l'apéro et je ne voudrais pas abuser... Wink

On doit taper les noms des variables dans ton prog et il nous génère les dim et la création des variables contenant les numeros c'est ça ?
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 13:00

Je veux faire un programme:
picture image
edit ecriture
alpha jet
memo rentum
list ing
combo bo_con :' excuse moi pour se semblant d'humour!


donc je vais modifier les lignes: 16 et 17 (j'ai rajouté dans le programme un memo de récupération qui change les lignes dans les explications données plus haut)

data image,ecriture,jet,rentum,ing,bo_con
ce qui donne:

Code:
  ' programme nommant les objets

  dim a$  ,c$ ,i% ,j%  ,d$, r%
  dim t$(100)

  width 0,1200:height 0,700
  memo 1 :left 1,50:width 1,1130 :height 1,350:font_size 1,14:font_name 1,"Lucida Console"
  item_add 1," récupérer par copier/coller, les >>DIM<< suivants:":item_add 1,""
 
  memo 2 :left 2,50:width 2,1130 :height 2,200:font_size 2,14:font_name 2,"Lucida Console":top 2,360
          color 2,231,235,198

  rem les noms des datas sont des exemples. Vous faitez votre propre liste.
  rem terminez la liste par $$$
      rem  " METTRE ICI LES NOMS CHOISIS "
  data image,ecriture,jet,rentum,ing,bo_con
  data $$$

  c$="" :a$="dim ":i%=1
  repeat
      read c$:print c$
      if c$<>"$$$"
        a$=a$+c$+"," : t$(i%)=c$:i%=i%+1
        if len(a$)>70 then item_add 1,left$( a$ , len(a$) -1 ):a$="dim "
      end_if
  until c$="$$$"

  item_add 1,left$( a$ , len(a$) -1 )
  item_add 1,""

  data "reportez les variables dans votre programmes, avant de vous en servir "
  data "pour définir vos objets. Si vous voulez incorporer d'autres "
  data "objets, il suffit de reprendre ce programme, d'y mettre les noms à la place qui vous"
  data " convient, et de remplacer l'ensemble des noms, "
  data "par ceux-ci. Ainsi votre propre programme est automatiquement régénéré."

  read a$:read c$: item_add 1,a$+c$
  read a$:read c$: item_add 1,a$+c$
  read a$:item_add 1,a$

  item_add 2,"rem variables définissant les objets (à recopier)":item_add 2,""
  '      *******************************************************************
  r%=0  :rem "variable donnant le dernier objet, pour mettre à la suite " ' *
  '      *******************************************************************
  for j%=1 to i%-1
    d$=d$+t$(j%)+"="+ str$(j%+r%)
    if len(d$)>70
      item_add 2,d$:d$=""
    else
      d$=d$+" : "
    end_if
  next j%
  if d$<>"" then d$=trim$(d$):item_add 2,left$(d$,len(d$)-1)
  item_add 1,"":item_add 1,"pensez qu'un nom simple prend plus de place en mémoire qu'un nom avec % à la fin."
  item_add 1," ensuite on fait la liste avec par exemple:picture cube :edit boite .etc...

et le résultat donne les lignes suivantes:
Citation :
rem variables définissant les objets (à recopier)

image=1 : ecriture=2 : jet=3 : rentum=4 : ing=5 : bo_con=6
il suffit de laisser le programme de côté, pour à l'occasion insérer d'autre nom, ou changer l'ordre.
De copier les lignes dans le programme à faire, par copier/coller, ainsi que la ligne DIM en haut.

Il est évident que cela vaut pour un long programme, si il n'y a que 2/3 objets, je n'en vois pas l'intérêt.

Pour revoir la liste, donc on reprend le programme, on modifie les datas par rapport à ses besoins, et en remplace la ligne DIM, et les lignes OBJETS définies.
Pour les gros programmes, on programme avec des noms, sans tenir compte des N°, et si on veut insérer un objet, avec le programme en mémoire, tout est redistribué.

Bon Appétit!
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 13:41

ok je comprend.
merci ! Smile
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 15:49

Le programme de cosmos m'a donné une idée :

c'est encore une ébauche:
- cliquer sur "Load" : choisissez un fichier panoramic
- cliquer sur 'Scan'
--> dans le mémo apparait les objets déclarés (numero, type, ligne du programme)

Ce qu'il reste à ajouter :
- compléter les datas des mots cles (peut être envisager un fichier texte contenant tous les mots clés de déclaration d'objet)
- Avoir un timer qui vient scruter toutes les x secondes la date du fichier bas et en cas de changement, recharger et refaire un scan automatiquement

Votre avis ?...

STOOOP y a un bug... je corrige et je vous dis quand... Wink

QUAND !!! (c'est corrigé !)

Code:

DIM Border_size%,Title_size%,w%,h%
picture 1:full_space 1:Title_size%=height(0)-height(1):Border_size% = width(0)-width(1): delete 1
DIM bScan%: bScan%= number_objects+1:button bScan%:inactive bScan%
DIM bLoadFile%:bLoadFile%=number_objects+1: button bLoadFile%
DIM lstObject%:lstObject%=number_objects+1: LIST lstObject%: ' BAR_BOTH lstObject%
LABEL LoadFile,Scan,Redraw

WIDTH lstObject%,WIDTH(0)-Border_size%
HEIGHT lstObject%,HEIGHT(0)-Title_size%-TOP(lstObject%)-height(bScan%)
LEFT bScan%,5:TOP bScan%,TOP(lstObject%)+HEIGHT(lstObject%) : caption bScan%,"Scan"
TOP bLoadFile%,top(bScan%): LEFT bLoadFile%,left(bScan%)+WIDTH(bScan%)+5:caption bLoadFile%,"Load"

DIM dLstPrg%:dLstPrg%=number_objects+1:DLIST dLstPrg%
DIM tRedraw%:tRedraw%=number_objects+1:timer tRedraw%
timer_off tRedraw%:timer_interval tRedraw%,100:on_timer tRedraw%,Redraw


DIM tObject$(30),nbMotsCles%,nbFind%
DIM tmpObject%,tmpObject2%,fichier$,i%,j%,k%,l%,ligne$,a$
FONT_NAME lstObject%,"Courier New"
FONT_SIZE lstObject%,10
for nbMotsCles%=0 to 30
  read tObject$(nbMotsCles%)
  if tObject$(nbMotsCles%)="####" then nbMotsCles%=nbMotsCles%-1:exit_for
next nbMotsCles%

on_click bScan%,Scan
on_click bLoadFile%,LoadFile
timer_on tRedraw%

END

LoadFile:
  tmpObject%=number_objects+1
  OPEN_DIALOG tmpObject%
  fichier$=FILE_NAME$(tmpObject%)
  if fichier$<>"_"
    clear dLstPrg%:nbFind%=0
    FILE_LOAD dLstPrg%,fichier$
    caption 0,fichier$+" nb ligne:"+str$(count(dLstPrg%))
    active bScan%
  else
    inactive bScan%
  end_if
return


Scan:
  for i%=1 to count(dLstPrg%)
    ligne$=""
    ligne$=UPPER$(item_read$(dLstPrg%,i%))
      ' maintenant on vire toutes les chaines de caractères
      if instr(ligne$,chr$(34))<> 0 or instr(ligne$,chr$(39))<> 0
        k%=1:a$=""
        for j%=1 to len(ligne$)
          if mid$(ligne$,j%,1)=chr$(39) then exit_for
          if mid$(ligne$,j%,1)=chr$(34)
            a$=a$+mid$(ligne$,j%,1)
            k%=bin_xor(k%,1)
          else
            if k%=1 then a$=a$+mid$(ligne$,j%,1)
          end_if
        next j%
        ligne$=a$
      end_if
      ' puis on vérifie si pas de mot-cles de declaration d'objets...
      for j%=0 to nbMotsCles%
        k%=INSTR(ligne$,tObject$(j%))
        if k%>1
          if mid$(ligne$,k%-1,1)="_" then k%=0
        end_if
        ' on en a trouvé un:
        if k%<>0
          nbFind%=nbFind%+1
          a$="":k%=k%+len(tObject$(j%))
          while mid$(ligne$,k%,1)<>":"
            a$=a$+mid$(ligne$,k%,1)
            k%=k%+1
            if k%> len(ligne$) then exit_while
          end_while
          a$="numéro: "+a$+"    type:"+tObject$(j%)+"  déclaration ligne:"+str$(i%)

          item_add  lstObject%,a$
          caption 0,fichier$+" nb ligne:"+str$(count(dLstPrg%))+" nb objets:"+str$(nbFind%)
        end_if
      next j%
  next i%
  item_add lstObject%," Fini !"
return

Redraw:
  if w%<>width(0) or h%<>height(0)
    WIDTH lstObject%,WIDTH(0)-Border_size%
    HEIGHT lstObject%,HEIGHT(0)-Title_size%-TOP(lstObject%)-height(bScan%)
    LEFT bScan%,5:TOP bScan%,TOP(lstObject%)+HEIGHT(lstObject%) : caption bScan%,"Scan"
    TOP bLoadFile%,top(bScan%): LEFT bLoadFile%,left(bScan%)+WIDTH(bScan%)+5:caption bLoadFile%,"Load"
    w%=width(0):h%=height(0)
  end_if
return

DATA "FORM ","BUTTON ","DLIST ","LIST ","EDIT ","MEMO ","OPEN_DIALOG ","TIMER ","PICTURE ","ALPHA "
DATA "COMBO ","MOVIE ","GRID ","OPTION ","SCENE2D ","SCENE3D","SCROLL_BAR ","SOUND ","SPIN ","SPRITE "
DATA "####"
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 17:35

Je viens juste de faire un détour sur ton site, pour voir.
Chapeau.
Quand au programme, ce sera pour plus tard. Parfois, je regarde 2 mois plus tard, je n'aime pas me disperser dans les idées lorsque je bloque sur un programme.
Salutation
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2381
Date d'inscription : 28/05/2007

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 19:10

@Nardo26:
Bravo pour ton site!
J'ai fait une rubrique spéciale sur le forum et sous peu, je ferais un renvoi sur le site de PANORAMIC.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 20:13

Merci beaucoup,
En fait après avoir batailler avec des serveurs ftp, j'ai trouvé que c'était plus simple et plus convivial d'avoir un site qui regroupe tout sans encombrer le forum...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 22:47

Bon, revenons à nos moutons Nardo, on n'est pas là pour se congratuler sur ton site ! si beau soit-il ! Smile

Intéressant ton programme qui analyse un source Panoramic, ça pourrait être le début d'un outil plus général d'analyse de source qui listerait également les étiquettes et leurs adresses, les sous-programmes, plus dur les variables, qui ferait sur demande une indentation automatique, qui passerait tous les mots-clé en majuscules, etc.

Remarques sur le programme:
- tu aurais pu formater le résultat avec des blancs pour aligner les données Very Happy
- tu as oublié au moins l'objet CHECK ! (comme par hasard j'en avais plein dans le source soumis) Very Happy
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 23:11

Oui tu as raison,
cela pourrait être l'embryon d'un outil beaucoup plus généraliste...

Le problème du formatage, c'est que le caractère de tabulation ne marche pas dans une liste. Sad
Je pourrai compléter avec des espaces...


Là où je coince un peu c'est lorsque l'on a un code de ce genre :
Code:
for i%=2 to 4
  ALPHA i%
next i%

ou

Code:

 EDIT Nom2Edit%

mais je pense que ce n'est pas insurmontable...

Sinon : rajout de CHECK, CONTAINER

Ce que je regrette c'est de ne pas voir de send_message de manière à pouvoir forcer l'editeur de pano à aller sur la ligne que l'on a sélectionné dans la liste... ça, ça serait vraiment cool ! Smile


Dernière édition par Nardo26 le Dim 24 Oct 2010 - 23:37, édité 2 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 23:29

C'est bien à des espaces que je pensais pour le formatage.

Pour une définition multiple d'objets avec une variable dans une boucle je ne pense pas que tu puisses faire mieux que le donner une seule fois.

Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyDim 24 Oct 2010 - 23:41

Mise à jour :
- formatage du résultat Smile

je gamberge pour détecter dans le cas de :
MOT_CLES Variable%
si je ne trouve pas d'affectation de Variable% dans les lignes anterieures...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 0:03

J'avais déjà commencé à lire les variables pour pouvoir renommer dans une liste celle-ci ainsi que les labels, mais ne pouvant pas courir plusieurs chevaux à la fois, je laisse de côté celà pour avancer dans mon autre programme.
Il y a une partie qui lit les dim.
A toi de voir, la partie qui lit les dim fonctionne, le reste c'est à voir, et de toute façon tu choisiras une autre méthode, avec d'autres idées.

Si entre temps, vous avez le temps de faire un programme qui permette de lister toutes les variables du programme ainsi que les labels, pour les changer dans tout le programme, j'en serais le plus heureux.

Pour moi, une chose à la fois.
Il faudra mettre le lien d'un fichier bas pour sortir les variables, mais ça vous l'avez compris.
Code:
dim a%,b%,c%,a$,b$ ,q ,include% ,flag_include% ,c$ ,v% ,d% ,e% ,labele$,d$ ,lef$, l% , choix_item%
 label sortTronCommentaire , decale , corrige ,copie
    ' je prends le programme  REMARQUE/ IL FAUDRAIT LIRE LE FICHIER JUSQU'AU END POUR DERNIER OBJET ET LIRE VARIABLE
width 0,500:height 0,900:left 0,600

dlist      1
dlist      2 :file_load 2,"C:\TESTE\boucles-label.bas"

dlist      3:' width 3,100:height 3,100:font_size 3,12                :color 3,198,243,148
dlist      4:' width 4,70 :height 4,100:font_size 4,12:  left 4,105  :color 4,239,215,140



list      6:width 6,100:height 6,150:font_size 6,12:left 6,100 :color 6,198,243,148:on_click 6,copie
list      7:width 7,70 :height 7,150:font_size 7,12:left 7,05 :color 7,239,215,140
scroll_bar 8:left 8,220:height 8,10:width 8,150:vertical 8
edit      9:left 9,400:font_size 9,12:width 9,50
edit    10:left 10,005:width 10,200:top 10,122:font_size 10,12:on_change 10,corrige

' list    100:top 100,500
    ' je mets le label de la procédure, et les dims de départ
for a%=1 to count(2)
  a$=item_read$(2,a%)
  if instr(upper$(a$),"END")>0 and instr(upper$(a$),"END_")=0 then b%=1:' item_add 1,"gosub liste_variable"

      item_add 1,a$

next a%
  ' maintenant il faudrait rechercher tous les DIM et les définir de suite, et mettre les autres en commentaires.
  ' la ligne 1 ne compte pas, elle vient d'être rajouté pour ce programme
 
d$="DIM "
for a%=1 to count(1)
  c$=""
  a$=trim$(item_read$(1,a%))
  b%=instr(a$,":")
  c%=instr(a$,lower$("dim"))
  if c%>0
      IF instr(a$,"' ")>0 or instr(upper$(a$),"REM ")>0
        if instr(a$,"' ")<b% or instr(upper$(a$),"REM ")<b%
            ' ici commentaire
            goto sortTronCommentaire
        end_if
      end_if

      lef$=left$(a$,c%-1)
      b$=mid$(a$,c%+4,100)
      if instr(b$,":")>0
        c$=right$(b$,len(b$)- instr(b$,":"))
        b$=left$(b$,instr(b$,":")-1)
      end_if
      if b%<c%
        a$=insert$(a$,"' ",b%+1)
      else
        a$=insert$(a$,"' ",1)
      end_if
      a$=lef$+c$+":' dim "+b$
      item_delete 1,a%
      item_insert 1,a%,a$
      if len(d$)>4
        d$=d$+","+b$
      else
        d$=d$+b$
      end_if
    end_if
sortTronCommentaire:
next a%
a$=d$
item_insert 1,2,d$

' ------------------------------------

        ' ici mise en liste de chaque variable
        a$=mid$(a$,4,500)
        repeat
            b%=instr(a$,",")
              if b%>0
                  b$=trim$(left$(a$,b%-1))
                  item_add 3,b$:item_add 4,""
                  a$=trim$(right$(a$,len(a$)-b%))
              else
                  b$=a$
              end_if
        until b%=0

    ' je viens de composer le programme
' ///////////////////////////////////////
' ----------------------ici on met en list les DIM -----------------------------
    ' j'y mets les DIM en liste
  rem " recherche des DIM
  for a%=1 to count(1)
      a$=trim$(item_read$(1,a%))
      if trim$(a$)="q:" then exit_for
      if upper$(left$(trim$(a$),4))="DIM "
        a$=trim$(right$(a$,len(a$)-4))
        b%=instr(a$,":")
        if b%>0 then a$=trim$(left$(a$,b%-1))
        b$=a$
      end_if
  next a%
  sort 3
  for a%=1 to 6:item_add 7,item_read$(3,a%):item_add 6,item_read$(3,a%):next a%
  if count(6)>count(7) then item_delete 6,count(6)

  if count(3)>0 then max 8,count(3):min 8,1
  l%=1: max 8,count(3)
  on_change 8,decale
  end
' ==================================================================

  decale:
  gosub copie
  for a%=1 to count(6)
    item_delete 4,a%+l%-1:item_insert 4,a%+l%-1,item_read$(6,a%)
  next a%
  l%=position(8)
  if l%>0
      clear 7:clear 6:text 9,l%
      for a%=l% to l%+5
        if a%<=count(3)
            a$=item_read$(3,a%):item_add 7,a$
            item_add 6,item_read$(4,a%)
        end_if
      next a%
      if count(6)>count(7) then item_delete 6,count(6)
  end_if
  ' choix_item%=0
  text 10,""
return
  ' ===============================================================
corrige:
 
return
  ' ==============================================================
copie:
  if choix_item%>0
      item_delete 6,choix_item%: item_insert 6,choix_item%,text$(10)
  end_if
  if number_click=6
      text 10, item_index$(6)
      choix_item%=item_index(6)
  end_if
return
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 0:18

merci cosmos ! Very Happy
j'y jetterai un coup d'oeil :
Pour l'instant j'essaye d'identifier l'affectation des variables utilisées lors de la déclaration des objets...

c'est Ok pour les objets déclarés de la manière suivante :

Variable%=456
..
..
MOT_CLE Variable%
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 11:07

Eh ben bon courage ! parce que bonjour tous les cas particuliers... variable% = v2%+5, variable% = toto%+tata%-3 etc etc... Very Happy

Tiens, si je me lançais dans la compétition avec le cahier des charges minimum:
- liste des variables
- numéros des lignes où sont utilisées ces variables
- liste des étiquettes
- numéros des lignes où sont appelées ces étiquettes
- liste des objets
- numéros des lignes où sont référencés ces objets
etc etc
Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 11:41

J'aimerai être dans la compétition, mais j'en ai pas le temps. Trop pris pour autre chose.
Ce que je voulais faire particulièrement est ceci.

Régulièrement on fait un programme, avec des noms de variable simple, comme a%, a$, b$ et des labels voir, copie, etc. Et ces programmes ont voudrait les intégrer comme include une fois finis, et alors là, tout est à renommer pour y mettre des noms compliqués qui ne perturberont pas les autres programmes. J'avais commencé, mais il y a plus important pour moi, et je laisse donc de côté cette idée. Ce sera pour plus tard. A moins que le même désir vous concerne, et voulez le faire aussi.

Dans ce cas, bonne chance. Pour les labels, je l'ai déjà fait dans un autre programme, et si vous le voulez, je peux le rechercher et mettre la méthode. Je me rappelle que la partie codée tenait compte de savoir si il y avait d'autres commandes dans la même ligne, ou que cela était intégrante d'un rem ou de'une chaine.

Quoi que vous décidez, au travail, tas de fainéants. cherry Razz
Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 11:50

Pour le cas où il y aurait des doutes, la dernière phrase est une plaisanterie. On ne sait jamais. albino
Revenir en haut Aller en bas
JL35




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

Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  EmptyLun 25 Oct 2010 - 11:57

Non, non, je sens bien que tu parlais sérieusement cosmos, bon, on y va, mais n'insiste pas trop sinon on se met en grève !

Sinon, les Include c'est bien, mais pour moi (comme pour tous apparemment) c'est le problème des variables qui doivent être déclarées dans le programme principal pour ne pas entrer en conflit avec d'autres déjà déclarées.
A ce jour je n'ai pas trouvé la solution géniale, ou alors il faut donner des noms de variables spécifiques avec des noms longs à coucher dehors, je n'aime pas.
Moi j'aime bien les a$, b$, i%, j%, x et y (vieilles séquelles du basic).
Ça m'est plus facile à lire que nom_de_la_patronne$ ou résultat_du_calcul%.

Vivement les Include avec variables locales, c'est un voeu pieux (ne pas confondre svp avec un vieux pieu).
Revenir en haut Aller en bas
Contenu sponsorisé





Nombre d'objets  Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  Empty

Revenir en haut Aller en bas
 
Nombre d'objets
Revenir en haut 
Page 1 sur 5Aller à la page : 1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» Comment déterminer le nombre de chiffres d'un nombre naturel
» variable nombre
» Une couleur est un nombre
» Formatage d'un nombre
» Capacité en nombre d'objet

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: