begin process at 2012 05 28 03:55:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

VBScript

 > 

Problème de redimensionnement tableau à 2 dimensions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de redimensionnement tableau à 2 dimensions

mercredi 15 juin 2005 à 10:18:31 | Problème de redimensionnement tableau à 2 dimensions

fal91

Bonjour,

Je n'arrive pas à redimmensionner un tableau à 2 dimensions. J'obtiens l'erreur suivante : Erreur d'exécution Microsoft VBScript (0x800A0009)
Indice en dehors de la plage

Voilà mon code:

redim batiment(50,2)
i=0
 Do While not objRecordset01.eof
   batiment(i,0)=objRecordset01("NAME0")
   batiment(i,1)=objRecordset01("ID0")
   objRecordset01.MoveNext
   i=i+1   
 loop
 ReDim Preserve batiment(i,2)

J'avais eu la même erreur avec un tableau à 1D, il fallait juste déclarer le tableau avec redim au lieu de dim .

Merci pour votre aide

mercredi 15 juin 2005 à 14:11:50 | Re : Problème de redimensionnement tableau à 2 dimensions

Nurgle

Membre Club Administrateur CodeS-SourceS
tu obtiens une erreur au premier "Redim" ou au 2e "Redim"

Met Dim batiment(50,2) au début
(je pense pas que tu ais besoin du premier redim cette fois ci )


Nurgle

C'est une grande folie que de vouloir être sage tout seul !
mercredi 15 juin 2005 à 15:55:38 | Re : Problème de redimensionnement tableau à 2 dimensions

fal91

J'obtiens une erreur au 2ème ReDim, j'avais déjà éssayé avec juste Dim au 1ier, j'ai retesté là, mais ca ne marche pas

Merci pour ton aide !
mercredi 15 juin 2005 à 16:09:12 | Re : Problème de redimensionnement tableau à 2 dimensions

Nurgle

Membre Club Administrateur CodeS-SourceS
tu peux obtenir le nombre d'enregistrement par la propriété objRecordSet01.RecordCount.
Donc tu peux dès le début faire : Dim batiment(objRecordset01.RecordCount, 2)
comme ça tu n'auras pas de redim à faire
(cette propriété n'est pas prise en charge par tous les types de BD malheureusement...)

Ah aussi : tu ne peux pas redimensionner un tableau en un tableau plus petit tout en voulant préserver les données. Donc si à la fin de ta boucle, i < 50, ça va planter.


Nurgle

C'est une grande folie que de vouloir être sage tout seul !
mercredi 15 juin 2005 à 16:25:14 | Re : Problème de redimensionnement tableau à 2 dimensions

fal91

ça marche avec access en théorie ou pas ? Parce que là RecordCount me retourne -1. Ca aurait pu être niquel sinon

mercredi 15 juin 2005 à 16:34:54 | Re : Problème de redimensionnement tableau à 2 dimensions

Nurgle

Membre Club Administrateur CodeS-SourceS
il te retourne -1, donc ça marche pas

Quelle est environ la valeur de i à la fin de ta boucle ?
Si à la fin i < 50, alors, tu auras des lignes vides dans ton tableau, mais c'est pas bien grave...donc ça irait.
Si i  > 50, alors il y aurait un moment dans ta boucle ou par exemple i = 53, où cette ligne ne fonctionnerais pas : batiment(1,2) = objRecordset01("ID0") car il est déclaré comme batiment(50,2)

Sinon il faudrait faire une première boucle qui ne servirait à qu'à trouver le nombre de ligne de ton recordset, puis créer le tableau avec directement le bon nombre de lignes, puis le remplir avec une 2e boucle (celle que tu utilises actuellement).
ça c'est sûr de marcher, mais c'est la solution la moins rapide...


Nurgle

C'est une grande folie que de vouloir être sage tout seul !
mercredi 15 juin 2005 à 16:42:56 | Re : Problème de redimensionnement tableau à 2 dimensions

fal91

Bah mon i est largement < à 50, j'ai mis 50 pour prévoir large. Je vais finalement opter pour la méthode de barbare alors  avec une seconde boucle juste pour compter les éléments.
A ton avis, d'un point de vue optimisation, il te semblerait plus adapter de faire la 2nde boucle et d'avoir des tableaux pile à la bonne taille, ou bien de se trimballer d'énormes tableaux

Merci encore !
mercredi 15 juin 2005 à 16:59:50 | Re : Problème de redimensionnement tableau à 2 dimensions

Nurgle

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
C'est mieux de se trimballer d'énormes tableaux !!
La boucle en elle même n'a rien de spécial, mais c'est juste que tu utilises ton objet recordset dedans, et c'est ça qui réduit vachement les performances.

Si 50 est vraiment trop grand, essaye de faire une approximation plus proche de la valeur que pourrait avoir i. Et bien sûr, si à un moment tu fais ajouter des enregistrement à cette table, arrange toi pour qu'il n'y ait jamais plus de 50 lignes, sinon : ERROR !! :p


Nurgle

C'est une grande folie que de vouloir être sage tout seul !
mercredi 15 juin 2005 à 17:03:27 | Re : Problème de redimensionnement tableau à 2 dimensions

fal91

Oki merci beaucoup pour la précision !
Je retourne me prendre la tête .
jeudi 16 juin 2005 à 10:36:17 | Re : Problème de redimensionnement tableau à 2 dimensions

FPatrick

Bonjour à vous.

Pour le REDIM, il y une particularité; on ne peut pas redimensionner un tableau à plusieurs dimensions sur les dimensions inférieures. je m'explique :

DIM TOTO(0,0)

REDIM TOTO(10,2)  OK
REDIM TOTO(10,10) OK
REDIM TOTO(11,10) ERREUR

On ne peut qu'augmenter la valeur supérieur d'un tableau.

Pour ton cas, j'inverserai les valeurs; je ferais batiment(2,i) dont i peut être redimensionnable (valeur suppérieur du tableau)
REDIM batiment(2,10), REDIM batiment(2,17) ,REDIM batiment(2,24) tout ca ok

J'espère avoir été assez clair dans mes explications confuses.

Bonne journée


1 2

Cette discussion est classée dans : erreur, tableau, dimensions, batiment, objrecordset01


Répondre à ce message

Sujets en rapport avec ce message

ubound erreur 500 [ par lubel ] Sujet : ubound Bonjour, alors que cette page marchais vendredi depuis plus rienJ'utilise les tableaux pour afficher mes résultats stockés en mémoire erreur lors d'insertion d'objet Tableau dynamique [ par ] Salut,après création d'un jeu d'enregistrement dans le DreamweaverMX, quant je veux insérer un Tableau dynamique le message d'erreur ci-dessous appar Insertion d'un controle dans une page .aspx [ par berocca ] Bonjour,Dans mon projet je n'ai pour le moment que des pages toutes simples, avec des labels, des liens hypertextes, et quelques images. J'arrive à na Menu déroulant [ par Appolon ] Bonjour, J'ai créé un tableau à 3 colonnes, Nom,Prénom, Statut Ce tableau est créé dynamiquement, Nom et Prénom c'est du texte et Statut un menu dérou [ASP.net][C#] Erreur sur DataAdapter.Fill [ par otterc8 ] Bonjour a tous! Voila mon probleme, j'ai du code généré par WebMatrix (je sais, je devrais passer a VS.net) que j'ai modifié pour l'adapté à MySQL (Od Pb avec le composant ASPEXEC [ par cracozore ] Bonjour à tous,J'ai un problème quand je fait apel au composant AspExec, j'obtiens ce message d'erreur :"Type d'erreur :Objet Server, ASP 0178 (0x8007 sans doute IIS [ par youcefe ] salut les gars je ss debutant en programmation asp, g réalisé un site web dynamique avec asp et access. tt alé bien jusqu'au jour où g plus accès o si page aspx inserer code vb ds 1 tableau [ par hmimoz ] salut, g un petit souci j'ai une page .aspx dans laquelle j'ai un tableau et je voudrais inserer le resultat d'une requete de la page .aspx.vb dans c liens a partir d'un tableau [ par ncode33 ] bonjour,je voudrai savoir comment on pourrai faire pour faire un lien a partir d'un resultat d'une requete que j'affiche dans un tableau.C'est a dire Erreur SendUsing [ par amorosalain ] SAMJ'utilise l'objet SmtpMail pour envoyer des emails automatiquement. Sur mon PC en local, je n'ai aucun problème. Sur le serveur (chez l'hébergeur d


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,237 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales