IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Problème de redimensionnement, tableaux dynamiques


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut Problème de redimensionnement, tableaux dynamiques
    Bonjour à tous,

    Quelqu'un saurait-il m'expliquer ce qui cloche dans ma manière de déclarer mon tableau à deux dimensions ?? Là, je patauge complètement
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    'J'ai aussi essayé avec Dim mon_tab(1, 1)
    Dim mon_tab(0, 0)
     
    Dim i, j, cpt
    cpt = 0 
    i = 0
    j = 0
     
    For i = 0 To 5 Step 1
    	Redim mon_tab(i+1 ,j)
    	Response.write i
    	For j = 0 to 10 Step 1
    		Redim Preserve mon_tab(i, j+1)
    		Response.Write j
    		mon_tab(i, j) = j + cpt
    	Next
    	cpt = cpt + 1
    Next
     
    For i = 0 To 5 Step 1
    	For j = 0 to 10 Step 1
    		Response.Write "<p> val ("&i&","&j&") est :" & mon_tab(i, j) & "</p>"
    	Next
    Next
    L'erreur renvoyée est
    Erreur d'exécution Microsoft VBScript error '800a0009'

    Indice en dehors de la plage

    recup_orient.asp, line 13
    une idée ?
    -M@rc0-

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 0 To 5 Step 1
    	Response.write i
    	For j = 0 to 10 Step 1
    		Redim Preserve mon_tab(i+1, j+1)
    		Response.Write j
    		mon_tab(i, j) = j + cpt
    	Next
    	cpt = cpt + 1
    Next

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut ...même erreur...
    Salut ced600 et merci de ta réponse rapide,

    J'ai oublié de préciser que j'avais déjà essayé la solution que tu me propose (et qui me parassait plus logique). Dans le doute je viens de tenter d'exécuter ton code mais cela ne marche toujours pas.


    -M@rc0-

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    extrait de l'aide ...VBSCript

    voir Où trouver l'aide en ligne pour VBScript ?
    Citation Envoyé par Redim preserve
    Si vous utilisez le mot clé Preserve, vous ne pouvez modifier que la dernière dimension du tableau et, en aucun cas, le nombre de dimensions. Par exemple, si votre tableau ne comporte qu'une seule dimension, vous pouvez la modifier car c'est la dernière et seule dimension. Toutefois, si votre tableau comporte deux ou plusieurs dimensions, vous ne pouvez modifier que la dernière dimension, tout en conservant le contenu du tableau.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut Merci
    Bonjour bbil et merci pour ta réponse,

    J'aurais sûrement dû poster pour indiquer que j'avais pris connaissance de cette info depuis --> Désolé. Je cherche donc une solution alternative. En fait, dans l'application que je vais en faire, ma seconde dimension est fixe. Je me rend compte qu'une structure serait plus appropriée (à un nom j'associe dix valeurs numériques), ainsi j'aurais un tableau à une dimension remplie de structures. Je n'ai pas encore regardé si les structures sont envisageables en VBS...

    Je suis à l'écoute de toute proposition

    -M@rc0-

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut Besoin de vos lumières...
    Re-bonjour à tous,

    N'ayant trouvé aucune information indiquant qu'il est possible d'établir des structures de données, je continue avec mon tableau à deux dimensions mais en "inversant" mes dimensions. Mais... ça ne marche pas. Si quelqu'un veut bien jeter un oeil...je sèche.
    Voici le nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    'J'ai tenté beaucoup d'autres type de déclaration initiale de mon tableau
    Dim mon_tab(10,1)
     
    Dim i, j, cpt
    cpt = 0 
     
    Response.write "<h5> Remplissage </h5>"
    For j = 0 To 5 Step 1
    	For i = 0 to 10 Step 1	
    		'Response.Write j
    		mon_tab(i, j) = cpt
    		cpt = cpt + 1
    	Next
    	Redim Preserve mon_tab(i, j+1)
    Next
    Response.write "<h5> Fin Remplissage </h5>"
    Le message d'erreur est :

    Erreur d'exécution Microsoft VBScript error '800a0009'

    Indice en dehors de la plage

    recup_orient.asp, line 13

    A vot' bon coeur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème des tableaux dynamiques (tas)
    Par oussaki dans le forum C
    Réponses: 7
    Dernier message: 26/12/2011, 11h25
  2. Problème tableaux dynamiques
    Par Vince dans le forum C++
    Réponses: 6
    Dernier message: 04/03/2009, 17h08
  3. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  4. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51
  5. [D2005]Problème de tableaux dynamique
    Par Laurent Dardenne dans le forum Delphi .NET
    Réponses: 8
    Dernier message: 26/07/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo