Accueil > Forum > > > > Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array
Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array
vendredi 3 juillet 2009 à 01:24:18 |
Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jeremiesauve
|
Bonjour à tous ! Je veux faire ces deux chose : 1. Dimensionner une variable tableau dynamique avec des dimensions dont les informations (des dimensions, min et max) sont dans 2 arrays... Le nombre de dimensions est déterminé par le nombre de valeurs dans l'array. avec 5 dimensions dans cette exemple : Dim Tab() as double ArrayMin = {0,0,1,1,0} ArrayMax = {25,50,20,20,10} Redim Tab(0 to 25, 0 to 50, 1 to 20, 1 to 20, 0 to 10) 'C'est cette ligne que je ne veux pas écrire à tout les fois que les arrays change !!!!! J'écrirais plutot quelque chose du genre : Redim Tab(ArrayMin to ArrayMax) Mais comment faire ??? 2. Deuxièmement .. je voudrais accéder à une valeurs dans ce tableau à X dimensions (5 pour l'exemple) .. à l'aide d'un array encore une fois Exemple : Array1 = {10,37,12,18,5} Valeur = Tab(10,37,12,18,5) 'C'est cette ligne que je ne veux pas écrire Je voudrais écrire dequoi d'équivalent à : Valeur = Tab(Array1) Comment je peux faire ca ??? Pour les solution .. oublié pas que le nombre de dimensions peut changer ..c'est 5 juste pour les exemples Merci pour celui qui pourra m'aider ... c'est le genre de programmation qu'on n'a pas besoin de faire souvent .. mais la .. c'est la seul solution pour mon projet mais je ne peux pas vous expliquer le projet .. trop compliqué et ca sort de l'ordinaire meton ... J'espère vraiment que c'est possible !!! .. sinon je sait pas comment je vai m'arranger !!!
|
|
vendredi 3 juillet 2009 à 01:31:04 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

PCPT
|
salut,
avec "5" variable, ce n'est pas possible
bizarre de demander de l'aide à des personnes pour qui ton problème sera trop dur à comprendre, non?
solution éventuelle => utilise un tableau de collections de tableaux de type (ou une collection de tableaux de tableaux? je sais plus ^^)
non il nous faut plus d'explications, c'est certain mais le TYPE perso doit avoir une part dans la solution
++
|
|
vendredi 3 juillet 2009 à 21:19:06 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jack
|
Salut Sujet intéressant. Première remarque : Tu ne peux pas utiliser un mot clé du langage (ou d'objet) comme nom de variable : Tab Il faut en changer : par exemple aTab (a pour Array) Deuxième remarque : Cette syntaxe n'existe pas en VB6 ArrayMax = {25,50,20,20,10}
A remplacer par Dim ArrayMax As Variant ArrayMax = Array(25, 50, 20, 20, 10)
Est-ce que les limites basses de tes tableaux changent ? Si oui : Impossible de faire du Redim en changeant la valeur basse (voir l'aide) Si non : Laisse la limite basse en fixe et jongle avec les limites hautes Exemple : ArrayMin = {0,0,1,1,0} Dim aTab() As Double Dim ArrayMax As Variant ArrayMax = Array(25, 50, 20, 20, 10) ReDim aTab(0 To ArrayMax(0), 0 To ArrayMax(1), 1 To ArrayMax(2), 1 To ArrayMax(3), 0 To ArrayMax(4))
Presque même remarque pour ta deuxième question : Array1 = {10,37,12,18,5} <-- Syntaxe inexistante en VB6 + Si tu veux récupérer ta valeur en envoyant un tableau, il te suffit de créer une fonction qui te renverra le résultat : Dim Array1 As Variant Array1 = Array(10, 37, 12, 18, 5) Valeur = ValTab(Array1)
avec la fonction : Private Function ValTab(maDemande As Variant) As Double ValTab = aTab(maDemande(0), maDemande(1), maDemande(2), maDemande(3), maDemande(4)) End Function
La fonction Array(...) n'accepte que les variables dimensionnées en Variant. Dans ce cas d'utilisation, le tableau ainsi fabriqué tardivement, à un index qui commence à 0. Vala Jack, MVP VBNB : Je ne répondrai pas aux messages privés Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|
|
vendredi 3 juillet 2009 à 23:03:21 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jeremiesauve
|
Je te remerci beaucoup pour ta réponse aussi bien détaillé !
J'ai pas besoin de changé mes valeurs basses... Pour la remarque à propos de comment entrée un array .. je cherchais justement comment faire .. J'avais pas posé la question mais merci
Par contre, la partie principale de ma question n'a pas été répondue désolé (j'ai peut-être pas été assez clair) , je vai essayer de clarifier ma question....
Mon problème viens du fais que l'array, je ne sais pas combien il va y avoir d'argument dedans. Si il y en a 5, la fonction marchera mais si il y en a 7, elle ne marchera pas ... Ce que je veux est que la fonction redim le tableau à 7 dimensions quand il y a 7 argument et qu'elle le redimensionne à 5 si il y en a cinq ... Je pourrais préparer une déclaration pour 5 et 7 que quand l'array à 5 argument j'utilise la déclaration à 5 et quand il y en a 7 j'utilise la déclaration à 7 .... Mais j'aimerais ne pas avoir de limite du fais que je doit prévoir toute les possibilité de nombre d'argument dans l'array ... je veux que cela soit dynamique ...
Bref, ce n'est pas seulement la longueur de chaque dimensions qui doit être dynamique, mais aussi le nombre de dimensions lui même doit être dynamique ...
j'espère que quelqu'un comprendra mon problème ... lol
Encore merci
|
|
vendredi 3 juillet 2009 à 23:10:20 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jeremiesauve
|
Je vais ajouter quelque chose ... le mieux que j'ai trouvé à date est ca (ca me donne une limite mais c pas si mauvais que ca ...)
Je créé toujours un tableau dynamique avec une bonne dizaine de dimensions mais quand il n'y a que (par exemple) 5 valeurs dans l'array, je cache les 5 autres dimensions en les dimensionnant de 1 à 1 ...
Je fais des belles fonction pour pas que ca paraisse qu'il y a des dimenions caché (1 to 1)
Ca marche mais j'aimerais avoir quelque chose de VRAIMENT completement dynamique
|
|
samedi 4 juillet 2009 à 02:30:35 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

PCPT
|
salut,
totalement d'accord avec les explications de Jack il n'en reste pas moins que ta demande semble relativement improbable
es-tu certain de l'étude du besoin as-tu cherché le fonctionnement des TYPES ? pourrais-tu donner un bribe significative de ton projet pour expliquer ce besoin?....
d'après tes derniers posts : une class, contenant une collection (0) de tableaux (mono), ajout (add, création) des tableaux selon le besoin, compteur à la création, le tour est joué en moins de 20 lignes....
nous ne sommes pas devant ton écran
|
|
samedi 4 juillet 2009 à 03:07:21 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jack
|
Réponse acceptée !
Hélas non, tu ne peux pas rendre paramétrable la profondeur du tableau. Ce qui m'épate, c'est ce que tu vas mettre dans ce tableau ? 7 dimensions, c'est déjà énorme et je ne vois pas quelle application peut avoir besoin de 7 dimensions. Il faut quand même garder à l'esprit que ces données sont stockées en mémoire. D'après le tableau à 5 dimensions que tu donnes en exemple "25,50,20,20,10", ça te fera quand même 5.000.000 de valeurs Double, c'est à dire 5 * 8 = 40.000.000 d'octets en mémoire, soit plus de 38 Mo !! (même s'il n'y a pas de valeur dans toutes les cases) C'est énorme. En dernier recours, tu peux imaginer une base de données. Tu crées une table comportant deux champs : -1- la multi-dimension sous forme d'un texte où chaque dimension est séparée par un espace par exemple "18 32 68 17". -2- la valeur, exemple 2.566489 Dans ton programme, au moment où tu découvres le nombre de dimensions, tu sauras combien de chiffres tu dois fournir pour enregistrer une valeur. Il faudra ensuite enregistrer autant de valeurs qu'il y a de combinaisons; ça risque de prendre du temps de stocker 5 millions d'enregistrements ! Nota : La limite de taille sous Access est de 2Go par table, 4 Go sous SQL Server. Ensuite, tu interroges ta DB en recherchant l'enregistrement qui correspond; Là, tu peux préparer une chaine sTemp dans laquelle tu mets "18 32 68 17" que tu recherches et tu interroges avec une syntaxe SQL classique sSQL = "Select laValeur Where MultiDim = '" & sTemp & "'"
Vala Jack, MVP VBNB : Je ne répondrai pas aux messages privés Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|
|
samedi 4 juillet 2009 à 05:49:33 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jeremiesauve
|
Je vois que vous êtes curieux !! lol .. c vrai que spas tout les jours qu'on veut travailler avec plus que 5 dimensions ... Premièrement, je veux dire que je préfère pas tout révéler sur le projet, je veux pas me faire copier ... Mais je peut surment vous donner un ti peu d'info Je vais faire un système qui va réagir selon les valeurs entrantes sans avoir à calculer quoi que ce soit, le programme devra apprendre par lui-même.. Ca pourrais être comparable à ce que moi j'appel l'intuition. En réalité j'aimerais qu'il puisse y avoir du genre 20 dimensions ..mais c'est irréaliste... présentement j'ai simplifié le plus possible et j'arrive à environ 5 dimensions... mais j'aimerais bien avoir plus de réalisme plus tard en ajoutant quelque dimensions...de la le besoins que le nombre de dimensions puisse varier ... je vai faire plein de tests ..avec des nombres de dimensions différent ! Et appliquer le principe à plusieurs situation .. faut que ca soit dynamique.
Présentement je vai appliqué ca à une situation relativement simple ... mais peut-être que plus le principe pourrais servir dans des situation vraiment intéressante... je ne veux pas dire sur quoi je vai appliquer mon système d'intuition ... désolé
Bon ben maintenant .. je reviens à la programmation !
-Je ne suis pas assez familier avec les base de données pour faire le système que propose Jack avec deux champs de valeurs et je pense que ca serais pas assez rapide
Je crois que je vais faire des Tebleau de Tableau pour repousser les limites de dimensions et prévoire une bonne dizaine de dimensions en fermant les dimensions de trops .. (fermer en les dimensionnant de 1 à 1)
Je crois qu'on peut fermer le sujet, je vous remerci encore de votre aide .. c'est vraiment intéressant d'avoir de l'aide en aussi peu de temps !!
Au plaisir
|
|
samedi 4 juillet 2009 à 05:51:38 |
Re : Déclarer une variable tableau selon l'informations des dimensions contenue dans un array sans connaitre le nombre de dimensions dans l'array

jeremiesauve
|
J'accepte la réponse de Jack car je voulais savoir si le nombre de dimensions d'un tableau était paramétrable, la réponse est non merci
|
|
Cette discussion est classée dans : nombre, tab, to, array, dimensions
Répondre à ce message
Sujets en rapport avec ce message
tableaux a plusieurs dimensions ?? [ par Johan94 ]
bonjour,je voudrai savoir si les tableaux a plusieurs dimensions existait en VB ?pour en faire une utilisation identique qu'en langage C.par exemple s
dimensions colonnes dans une mshflexgrid [ par vroumm ]
J'ai un fichier texte avec un certain nombre d' enregistrements et d'attributs (c'est à dire un table avec des lignes et des colonnes).Je lis ce fichi
SSTab [ par etniqs ]
bonjour, j'ai un SSTab avec 3 onglets, dans le premier onglet tab 0, j'ai des checkbox crées comme ça en résumé :for i = 0 to 9 load checkbox(i)
Array to Array [ par jmtoulon ]
Bonjour, je voudrais transférer les valeurs d'une variable Array vers une autre variable ArrayEn VB j'essaie de faire b() = a()mais ça marche pas !Je
Tableau multidimensionnel [ par joquetino ]
Bonjour,Je travaille actuellement sur un tableau à deux dimensions. J'aimerais l'initialiser selon une variable i (une variable de type Integer). J'ai
Algorithme [ par 33william ]
Bonjour à tous, je mets dans un objet list1 (de vb6) le resultat de la boucle suivante :for i=1 to 47for j=i+1 to 48for k=j+1 to 49<BR
indexer des tableaux à deux dimensions [ par adrienr11vdv ]
bonjour à tous,je développe actuellement un projet en vb6. j'ai un tableau à deux dimensions de ce type : t_mat(1 to 4, 1 to 10)j'aimerais avoir 9 t
Les ARRAYS vous connaissez? [ par klingfilm ]
Les ARRAYS vous connaissez?Bonjour à tous, je profite d'en avoir marre de lire de l'info dont je ne pige rien pour vous poser 3 ou 4 questions de base
Tableau a plusieurs dimensions [ par mathfromaix ]
Bonjour,Je debute en Basic et j'ai une petite une petite question, je souhaite creer un tableau ( c pour mon MSChart) a plusieurs dimensions cad par e
confusion entre ma prog et VBa [ par aducloux ]
voila apres de nombreuses difficultés je me retrouve avec ce code la :Sub SelectionEtOuvertureFichier() Dim filetoopen As StringDim strTemp As Strin
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|