Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Mon (re)souhait pour un Dim dynamique | |
| | Auteur | Message |
---|
pat
Nombre de messages : 76 Date d'inscription : 14/10/2009
| Sujet: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 14:31 | |
| Bonjour,
Faites ceci : Dim a,b Dim b(10) Pas de problème, tout fonctionne.
Maintenant faites ceci : Dim a,b a=10 Dim b(a)
Vous aurez une erreur parce que Panoramic n'accepte que les constantes pour l'indice d'un tableau. Mon (re)souhait serait d'avoir un Dim dynamique qui puisse avoir comme indice une variable. Et cela est d'autant plus souhaitable que pour gérer des listes (par exemple) on ne connaît pas toujours la taille au départ. Et je pense que tout langage digne de ce nom se doit d'avoir ce genre de chose. Alors quand le maître aura le temps de faire le nécessaire, Panoramic en sera grandi.
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 15:18 | |
| Bonjour Pat, Comme tu ne peux pas allouer un espace de RAM en dynamique, tu peux peut-être le faire dans un fichier (voir même dans un fichier sur RamDisk) Je ne sais pas exactement dans quel contexte tu as besoin de tableau dynamique mais si la rapidité ne rentre pas en jeu (j'ai pas fait de test), tu peux peut-être simuler un tableau dynamique avec un fichier binaire et utiliser les commandes FILEBIN_POS() et FILEBIN_POSITION pour récupérer les données que tu souhaites... | |
| | | Invité Invité
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 16:01 | |
| Bonjour Pat,
Une liste dynamique existe: c'est dlist et list. Il n'y a pas de limite, ou de déclaration de nombre d'éléments. De plus ces listes ont l'avantage de pouvoir insérer directement des éléments ou de les supprimer à l'intérieur sans problème, et sans avoir à faire des déplacements sur le restant de la liste. En plus la sauvegarde se fait par une seule instruction: filse_save N.
Le seul reproche que je fais pour l'utilisation, est qu'on ne peut définir qu'une dimension. Dans le cas de plusieurs dimensions, il faut assocoer plusieurs list, et travailler en parallèle. Et pour ce problème, il ne faut surtout pas utiliser sort pour mettre de l'ordre.
Depuis que j'utilise Panoramic, je me sers pour la seconde fois je crois d'un dim pour utiliser un tableau, et c'est depuis 1/2 heure que je l'utilise. Pour ce coup cela m'a paru plus simple, et j'aurai pu utiliser dlist. Autre avantage de list ou dlist, est le vidage par clear. Avec un tableau il faut parcourir chaque élément pour le mettre à 0. De plus avec count(), on sait immédiatement de combien d'élément on dispose. Avec un variable tableau, il faut utiliser une variable de contrôle., ou lire depuis la fin vers le début pour savoir ce qui reste de libre. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 16:14 | |
| Entièrement d'accord avec Cosmos, le dlist n'a que des avantages par rapport au tableau à une dimension (lecture/sauvegarde fichier, tri, clear, count..., en plus de ne pas avoir à fixer la taille au départ).
Sinon, si on veut absolument utiliser un tableau dont on ne connaît pas la taille maximum, est-ce qu'on ne peut pas fixer une très grande taille d'office ? ce que je ne sais pas c'est si la place est effectivement réservée au départ (ça m'étonnerait, car a priori on ne sait pas ce qu'il y aura dedans), ou si c'est dimensionné dynamiquement au fur et à mesure de l'utilisation, auquel cas ça ne mange pas de pain. | |
| | | Invité Invité
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 16:22 | |
| J'ai pas pensé sur le coup, mais lorsque je veux plusieurs dimensions avec dlist, j'utilise un caractère de séparation qui peut-être chr$(1), ou autre. Si plusieurs séparations sont nécessaire, il suffit de prendre des séparateurs différents et avec instr, on récupère les différentes parties, on les mettant dans des variables temporaires. C'est pas dur à faire. |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 16:28 | |
| Oups ! J'avais oublié le dlist.... Et pourtant, je l'utilise régulièrement... Je suis d'accord avec cosmos. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 17:21 | |
| @cosmos je ne comprends pas bien l'utilisation de dlist pour simuler un tableau à deux dimensions par exemple, ça me paraît plus compliqué que ça. Deux dimensions pour un tableau ça veut dire qu'à chaque élément de la première dimensions correspond un tableau entier de la deuxième dimension. Si on fait DIM (5, 10) ça doit générer 5 tableaux de 10 éléments chacun. Pas facile à faire avec un dlist.
| |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 18:26 | |
| Pourquoi pas 5 dlist avec 10 lignes chacun. on retourne sur un tableau 5 par 10. Un autre avantage c'est que l'on peut avoir des entiers réels des chaines mixés A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 18:42 | |
| Certes, c'est très possible. Ca fait juste beaucoup d'objets à déclarer si le 1er paramètre du tableau est grand, mais est-ce souvent le cas ? Et puis, est-ce gênant ?
| |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 19:29 | |
| Mais le dimensionnement dynamique d'un tableau existe depuis le 20 décembre 2010 avec la version PANORAMIC v 0.9.20i1 ! Regarde le point 3 de l'annonce https://panoramic.1fr1.net/t1301-version-instantanee-du-10-decembre-2010ton exemple: - Code:
-
Dim a,b a=10 Dim b(a) provoque une erreur car tu redéclares la variable b. Tu la déclares une fois comme un réel et une deuxième fois comme un tableau de 10 réels ! Essaye: - Code:
-
Dim a,b a=10 Dim c(a) Il n'y a aucun problème. | |
| | | Invité Invité
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 19:57 | |
| pour répondre à JL35: - Code:
-
width 0,700:height 0,500:font_size 0,12 label separe ,prendre dim list$(10,3) dim a%,a$,b$,v%,b%,c%,d%,s$ s$=chr$(1)
data "Robert","Avril","28/12/1905" data "Rogert","Dutilleuil","15/10/1968" data "Dupont","Lajoie","11/05/2001"
list 1:width 1,250:height 1,200 :on_click 1,separe for a%=1 to 3:b$="" for b%=1 to 3 read a$ b$=b$+a$+s$ next b% item_add 1,b$ next a%
edit 2:left 2,270:width 2,300 memo 3:left 3,270:width 3,300:top 3,100:height 3,200:print_target_is 3
rem remplissage de list for d%=1 to 3
text 2, item_read$(1,d%) gosub prendre for c%=1 to 3 list$(d%,c%)=item_read$(3,c%) next c% next d% message "liste 1: "+list$(1,1)+" "+list$(1,2)+" "+list$(1,3) message "liste 2: "+list$(2,1)+" "+list$(2,2)+" "+list$(2,3) message "liste 3: "+list$(3,1)+" "+list$(3,2)+" "+list$(3,3)
end
separe: d%=item_index(1) :clear 3 a$=item_index$(1):text 2,a$ prendre: a$=text$(2) b%=0 :clear 3 repeat v%=instr(a$,s$) if v%>0 then b$=left$(a$,v%-1):a$=mid$(a$,v%+1,50):print b$ :else: print a$ until v%=0 return
Il y a l'exemple de séparation dans un list, et celui d'un remplissage d'un tableau |
| | | Invité Invité
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 20:26 | |
| En relisant les propos de Pat, j'ai fais une mauvaise lecture (influencé par la réponse de Nardo, mais ce n'est pas une raison pour me laisser perturbé). J'ai cru que Pat voulait rajouter des éléments à une liste au delà dimensionnée, et je crois que ce n'est pas le cas. Donc ma réponse est hors propos, et c'est Jack qui gagne. Je lui offre une fleur: Avec mes excuses, je ne suis pas riche. |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Mon (re)souhait pour un Dim dynamique Mar 15 Fév 2011 - 20:46 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Mon (re)souhait pour un Dim dynamique | |
| |
| | | | Mon (re)souhait pour un Dim dynamique | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |