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

ASP Discussion :

Probleme sur le redim preserve d'un tableau


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut Probleme sur le redim preserve d'un tableau
    Bonjour

    Je n'arrive pas a redimensiionner mon tableau en gardant les valeurs:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    dim tab
    if not isarray(session.contents("order")) then 'SI LE PANIER N'EST PAS CONNU
     
    	tab = split(request.form("chk"),", ")
     
    	response.write ubound(tab)+1
    	dim cat,subcat,sql,result
     
    	dim subpanier(24,2)
    	dim panier
     
    	redim panier((ubound(tab)+1),23)
    	for i = 1 to ubound(panier,1)
    		panier(i,11)=subpanier
    	next
    	'INSERTION DES INFOS SUR LE PRODUIT 
     
    	for j = 1 to ubound(tab)+1
    			'ici insertion bla bla
    	next
    		session.contents("order") = panier
    else
    	panier = session.contents("order")		
    	tab = split(request.form("chk"),", ")
    	uTab = ubound(tab)+1
    	uPan = ubound(panier)
    	uPan = uTab+uPan
     
    	redim preserve panier(uPan,23) 'ICI ERREUR : Indice en dehors de la plage
    	for i = uPan+1 to (uPan+uTab)
    		panier(i,1) = "ouou"&i
    		panier(i,18) = panier(i,18) + uTab     'total_prod
    	next
    end if

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    On ne peut redimenssionner que la dernière dimenssion

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    Eh bien oui,

    Dans mon else, c'est la dernier fois que ca redimenssionne.

    explication:

    if -> la ou je cree pour la 1ere fois mon tableau panier

    else -> la ou je le redimensionne (donc je repasse pour la au minimun 2eme fois ds ma page)

    C'est donc la derniere dimension!...non?

    Au faite je veux rajouter des lignes de mon tableau. Chaque produit prends une ligne dans mon tableau.

    J'ai beau essayé:

    Redim Preserve panier(uPan)
    Redim Preserve panier(uPan,1)
    Redim Preserve panier(uPan,23)

    rien ne passe.

    Le uPan est le nombre de ligne de ma 1ere colonne du tableau.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    je pense avoir commpris.
    Quand on dit derniere dimension, c'est la derniere colonne qu'on peur redimensionner?

    dans mon cas, ce sont les colonnes (qui est la 2eme et dernier dimension)?

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Je te laisse mediter un peut là dessus.
    Il est vrai que les tableaux en vbscript sont un peu bizarre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%
    Dim Arr()
    Redim Arr(1)
    response.Write(ubound(Arr,1) & "<br>")
    Redim preserve Arr(4)
    response.Write(ubound(Arr,1) & "<br>")
    Redim Arr(4, 5)
    response.Write(ubound(Arr,1) & ", " & ubound(Arr,2) & "<br>")
    Redim preserve Arr(4, 10)
    response.Write(ubound(Arr,1) & ", " & ubound(Arr,2) & "<br>")
    Redim Arr(4, 10, 20)
    response.Write(ubound(Arr,1) & ", " & ubound(Arr,2) & ", " & ubound(Arr,3) & "<br>")
    %>
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    SAlut,

    Mais c'est la folie asp avec les tableaux!!!!
    On ne peux vraimet pas faire ce qu'on veut quoi.

    Au faite on est obligé de donner une taille > à ce qu'on attend.
    Genre je dois prevoir pour les utilisateurs une taille de 200 lignes par ex mais si jamais l'utilisateur depasse cette limite bah c'est la m*****.

    Ce probleme est propre a asp ? ou vb etc
    Estce que dans le .net il existe cette contraire?

    Franchement PHP n'a vraiment aucun pbl sur ce sujet...

    Une astuce que j'ai testé qui consiste à:
    • mettre le tableau principal (tab1) dans un autre tableau temporaire (tmp)

    • recupere les nouveaux produits dans un tableau (tab2)

    • redefnir tab1 avec ubound(tmp)+ubound(tab2)
    • puis rajouter d'abord tmp puis tab2 vers tab1.


    Mais j'ai encore des erreurs de codage, mais c'est faisable comme ca? Avec cette methode on connaitra tjs la taille réelle du tableau tab1.

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Si tu n'as qu'une dimension suceptible de changer il faut la mettre en dernier. Si tu en as deux, il faut effectivement utiliser un second tableau.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. tableau a 2 dimmention redim preserve
    Par fernier dans le forum VB.NET
    Réponses: 3
    Dernier message: 30/01/2009, 12h41
  2. variable tableau 2 dimensions et redim preserve
    Par dawood dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/01/2009, 16h11
  3. Probleme sur affichage d'un tableau
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/10/2006, 17h31
  4. probleme sur un tableau
    Par vince2005 dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2006, 18h13
  5. [VB6] Erreur 9 sur redim preserve
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/10/2002, 18h29

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