Condition avec taille de vecteur

Résolu
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011 - 22 avril 2011 à 22:26
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 - 24 avril 2011 à 09:04
Hello,

Je voudrais pouvoir exécuter un code uniquement dans le cas où mon vecteur a une dimension n. La condition IF... then ça ça va par contre comparer les dimensions du vecteur avec un nombre je ne sais pas faire

Si vous pouviez m'aider ça serait génial.

12 réponses

CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
22 avril 2011 à 23:51
En Vb6 comme en vba , utilise la fonction UBound
Type One
x As Integer
y As Integer
End Type

Global Vecteur() As One
......
Dim Nb_Vecteur as integer
Nb_Vecteur = Ubound(Vecteur,1) 



Evite si possible de donner Array comme nom de variable, c'est un nom qui prete a confusion.

Tapez le texte de l'url ici.

Bonne soirée CGSI3
3
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
22 avril 2011 à 22:50
Bonsoir,

"mon vecteur a une dimension n"
Tu veux dire quoi ?
Explique un peu

Voici un vecteur sur 2 dimensions
0
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
22 avril 2011 à 23:17
Ben je stocke des nombres dans mon vecteur quand j'ai stocké 10 nombre par exemple je veux que ça s'inscrive dans ma condition.
Je sais pas si c'est comprehensible...
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
22 avril 2011 à 23:28
Non, c'est pas comprehensible... désolé

C'est pas de la géometrie apparement,
qu'est ce que t'appelle vecteur (un tableau ?)
Tu test les dimensions d'un tableau ?
Met donc un petit bout de code alors pour voir de quoi tu parle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
22 avril 2011 à 23:37
c'est un array
voila ma declaration de variable...
Ce que je veux c'est pouvoir conaitre le nombre de chiffres stockés dans Array.

Type One
x As Integer
y As Integer
End Type

Global Array() As One
0
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
22 avril 2011 à 23:54
cool, merci je vais essayer ca merci pour ta réponse!

Bonne soirée:)
0
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
23 avril 2011 à 10:02
ça marche pas...
j'ai mis

If Ubound(nodearray,1) = node_number then

Il me dit que l'indice est en dehors de la plage

ma declaration des variables est

Global nodearray as one
Global node_number as integer
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
23 avril 2011 à 10:29
Bonjour,

Global nodearray() as one
Global node_number as integer 

redim preserve nodearray(1 to 50) as one


Tu n'as pas déclaré comme tableau ta variable nodearray mais comme une variable toute simple
Les parentheses te permettent de le faire.
La valeur 1, d'Ubound permet juste de spécifier la dimension sur laquelle tu demande la valeur.
Tu peux avoir des tableaux a 2 dimensions.
Au passage c'est une déclaration dynamique, il te faut faire un redim ensuite pour redéfinir la taille de ton tableau, si tu regarde le lien que je t'ai laissé en clickant sur "Tapez le texte de l'URL" tu verra que c'est assez bien expliqué.
Preserve sert a modifier ton tableau tout en préservant tes valeurs, sinon a chaque changement de taille le tableau est effacé.
Elle ne marche que sur la premiere dimension d'un tableau.
Bonne journée CGSI3
0
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
23 avril 2011 à 10:59
En réalité j'avais bien dimensionné mon vecteur, je l'ai juste mal écris sur le site, Mais je ne l'avais pas initialisé.

Global nodearray() as one 'était bien écrit
redim nodearray(1) ' j'avais oublié de le mettre donc pour commencer il avait zéro ligne d'où la fonction ubound ne fonctionnait pas...


Je suis pas très douée... Mais merci beaucoup pour ton aide CGSI3!
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
23 avril 2011 à 11:47
Tiens, pour la peine, mais moi réponse accepté si cela répond a tes question.
Pour info: 4 conseils pour avoir une réponse

- Ne dis pas que t'est pas doué, tout le monde doit un jour ou l'autre en passer par la pour évoluer.
- Pose des questions précises, sache que même les initiés, dont humblement je me considère, ne postent pas une question ou une réponse sans y passer 4 à 5 Minutes histoire de ne pas avoir a re poster.
- Bonjour, Merci etc ne sont pas de trop mais tu as déja compris.
- Regarder dans les tutos que les précédents utilisateurs ont écrits.
(Juste une remarque sur ton pseudo, l'idée d'un ane c'est pas mal, moi j'aurais mis l'ane de schrek en avatar, et j'aurais pris le pseudo L'Ane_Fou ou l'Ane_qui_Parle ... mais c'est une idée perso)
Bonne prog CGSI3
0
anecaca Messages postés 30 Date d'inscription jeudi 24 février 2011 Statut Membre Dernière intervention 24 avril 2011
23 avril 2011 à 23:35
Spéciale dédicace;)
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
24 avril 2011 à 09:04
Superbe, l'ami
T'es Magnifique,
Que la force soit avec toi ...
CGSI3
0
Rejoignez-nous