Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2372 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Passage de paramètres dans une procédure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS] Passage de paramètres dans une procédure

n°1016089
ChtiGariX
Retraité
Posté le 17-03-2005 à 15:34:34  profilanswer
 

Lo  [:chtigarix]  
 
D'après les docs vbs, le mode de passage par défaut des variables est le passage par référence. Pourtant le tableau de mon script ci-dessous n'a pas l'air de passer.
J'ai même indiqué dans ma procédure tab_init qu'il faut passer mon paramètre par référence mais rien n'y fait : valeur NULL dans mon tableau manifestement.
 
Par contre quand j'inclus le code de la procédure affiche_tab directement dans le tab_init là j'ai bien le bon résultat.
Je suis perplexe :/
 
Ca doit être tout bête ... Quelqu'un a une idée ?
 
Ci-dessous mon code (je n'y inclus que les parties remplissage et affiche du tableau, la partie opérationnelle du script ayant peu d'importance) :

Code :
  1. Option Explicit
  2. Dim arr_tab(5) 'variable globale à tout le script
  3. Tab_init(arr_tab)
  4. tableau_affiche(arr_tab)
  5. Sub Tab_init(ByRef tableau)
  6.     Dim Int_init_tab
  7.     Int_init_tab = 1
  8.     Do While int_init_tab <= Ubound(tableau)
  9.        tableau(int_init_tab) = 1
  10.        int_init_tab = int_init_tab + 1
  11.     Loop
  12. End Sub
  13. Sub Tableau_affiche(tableau)
  14.     Dim Int_affiche_tab
  15.     Int_affiche_tab = 1
  16.     Do While int_affiche_tab <= Ubound(tableau)
  17.         Wscript.echo tableau(int_affiche_tab) & " est " & int_affiche_tab
  18.         Int_affiche_tab = int_affiche_tab + 1
  19.     Loop
  20. End Sub


---------------
Retraité de discussions
mood
Publicité
Posté le 17-03-2005 à 15:34:34  profilanswer
 

n°1016095
FlorentG
Unité de Masse
Posté le 17-03-2005 à 15:37:11  profilanswer
 

Pas besoin de ByRef de toute manière, vu qu'un tableau est de type référence, et que tu ne l'assigne pas à un nouveau tableau...
 
[parenthèse : en VB, on ne met pas d'underscore dans les noms de variables et de procédures :o]

n°1016114
ChtiGariX
Retraité
Posté le 17-03-2005 à 15:44:14  profilanswer
 

Je mets des underscores si je veux :o
Oui bon je sais qu'il n'y a pas besoin de byref mais je l'ai rajouté pour être sûr que ça venait pas de çà :D


---------------
Retraité de discussions
n°1016127
FlorentG
Unité de Masse
Posté le 17-03-2005 à 15:49:18  profilanswer
 

Non, tu ne mettera pas de underscore :o Le standard syntaxique veut que tu dois utiliser du PascalCase pour les variables et fonctions (genre VariablePouetTruc), et du camelCase pour les paramètre de fonction (genre paramDeTaFonction) :D
 

n°1016136
ChtiGariX
Retraité
Posté le 17-03-2005 à 15:53:36  profilanswer
 

M'en fous c'est du scripting. Je serais même pas obligé de déclarer les variables [:ddr555]
Mais pour la prochaines fois je virerai les underscore :jap:
 
C'est dur de se remettre dans le bain après 6 ans d'arrêt :/
J'ai l'impression d'être un lycéen en option initiation à l'info [:tinostar]


---------------
Retraité de discussions
n°1016145
FlorentG
Unité de Masse
Posté le 17-03-2005 à 15:57:25  profilanswer
 

Sinon, fait une fonction qui te retourne le tableau initialisé :)

n°1016157
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:00:44  profilanswer
 

Mouais j'y ai pensé mais bon je sais po comment ça va marcher.
 
Sinon pour le dimensionnement j'ai essayé de faire une constante TABSIZE, et ensuite Dim ArrTab(TABSIZE).
L'interpréteur a pas aimé :heink:


Message édité par ChtiGariX le 17-03-2005 à 16:01:04

---------------
Retraité de discussions
n°1016161
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:02:08  profilanswer
 

Ce qui est marrant, c'est quand je lance ton script, ça fonctionne :D

n°1016174
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:07:02  profilanswer
 

FlorentG a écrit :

Ce qui est marrant, c'est quand je lance ton script, ça fonctionne :D


Tu déconnes ?
Il affiche "1 est 1"
"2 est 1"
etc. ?
T'as quel interpréteur wsh ?


---------------
Retraité de discussions
n°1016175
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:07:27  profilanswer
 

(ça me rassure je suis encore capable de pondre un truc aussi trivial [:tinostar])


---------------
Retraité de discussions
mood
Publicité
Posté le 17-03-2005 à 16:07:27  profilanswer
 

n°1016178
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:09:01  profilanswer
 

Il affiche :
'est 1'
'est 2'
'est 3'
 
Ah ouais en fait ça bug :cry: :D

n°1016181
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:09:48  profilanswer
 

FlorentG a écrit :

Il affiche :
'est 1'
'est 2'
'est 3'
 
Ah ouais en fait ça bug :cry: :D


:D
Roh punaise je suis pas prêt de débugguer la partie intéressante du script  [:ddr555]


---------------
Retraité de discussions
n°1016186
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:12:44  profilanswer
 

Attend, je cherche :D

n°1016209
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:22:35  profilanswer
 

TROUVééééééééééééé !
 
Modifie la ligne :

Tab_init(arr_tab)


Par :

Tab_init arr_tab


Ou :

Call Tab_init(arr_tab)


 
Comme le dit la MSDN :

Citation :

You are not required to use the Call keyword when calling a procedure. However, if you use the Call keyword to call a procedure that requires arguments, argumentlist must be enclosed in parentheses. If you omit the Call keyword, you also must omit the parentheses around argumentlist.

n°1016213
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:24:59  profilanswer
 

Mon héros :D


---------------
Retraité de discussions
n°1016215
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:25:42  profilanswer
 

Je vais pouvoir maintenant m'atteler à la partie intéressante du script.
Je poste dès que ça marche :jap:


---------------
Retraité de discussions
n°1016217
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:26:16  profilanswer
 

Yessss :)

n°1016233
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:29:41  profilanswer
 

Pour l'instant mon script a pour seule fonction d'occuper 100% de ressources processeur [:gratgrat] :D


---------------
Retraité de discussions
n°1016252
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:37:55  profilanswer
 

Oula [:le kneu]

n°1016287
ChtiGariX
Retraité
Posté le 17-03-2005 à 16:44:25  profilanswer
 

Ayan il n'occupe plus les 100% de ressources proc.
Mais le fait est que mon algo est foireux à mon avis [:tinostar]


---------------
Retraité de discussions
n°1016296
FlorentG
Unité de Masse
Posté le 17-03-2005 à 16:47:42  profilanswer
 

Oui. Je pense :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Passage de paramètres dans une procédure

 

Sujets relatifs
Génération dynamique de documents paramétrés (templates)creation bouton pour acces paramètres matos
[PHP]Passage de parametre incomprehensible[VB/VBA/VBS] Lier 2 bases access avec VB6
Procédure stockée et parametre "base donnée"Passage paramètre à une thread
fonction avec passage par reference de variable[resolu] [JSP][Tomcat 5] Problème lors du passage de paramètres ?
graphics-procedure 
Plus de sujets relatifs à : [VBS] Passage de paramètres dans une procédure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR