Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Function passage d'arguments

6 réponses
Avatar
msnews.microsoft.com
Bonjour,

Quelqu'un pourrait il me dire quel est le type des arguments de la FUNCTION
ci dessous :

Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie As
String)


Plus précisément quel est le type des 3 1er arguments ? mon "As String"
concerne t-il juste le dernier ? ou tous les arguments ? et s'il concerne
quue le dernier, quel est le type des 3 autres ?

Avec tous mes remerciements.

Michel

6 réponses

Avatar
LE TROLL
Bonjour,

Je crois que ce n'est que le dernier qui est string, les autres variant,
car dans l'exemple VB, ça donne :

MyFunc(MyStr As String, MyArg1 As Integer

Donc, a priori il faut typer chaque élément entre virgule, ou sinon = défaut
?

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"msnews.microsoft.com" a écrit dans le message de news:
%
| Bonjour,
|
| Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION
| ci dessous :
|
| Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie As
| String)
|
|
| Plus précisément quel est le type des 3 1er arguments ? mon "As String"
| concerne t-il juste le dernier ? ou tous les arguments ? et s'il concerne
| quue le dernier, quel est le type des 3 autres ?
|
| Avec tous mes remerciements.
|
| Michel
|
|
Avatar
msnews.microsoft.com
Je vais essayer comme ça...

Je te remercie... et bonne fin d'année !

Michel

"LE TROLL" <le a écrit dans le message de news:
OXSW$
Bonjour,

Je crois que ce n'est que le dernier qui est string, les autres
variant,
car dans l'exemple VB, ça donne :

MyFunc(MyStr As String, MyArg1 As Integer

Donc, a priori il faut typer chaque élément entre virgule, ou sinon =
défaut
?

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"msnews.microsoft.com" a écrit dans le message de
news:
%
| Bonjour,
|
| Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION
| ci dessous :
|
| Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie As
| String)
|
|
| Plus précisément quel est le type des 3 1er arguments ? mon "As String"
| concerne t-il juste le dernier ? ou tous les arguments ? et s'il
concerne
| quue le dernier, quel est le type des 3 autres ?
|
| Avec tous mes remerciements.
|
| Michel
|
|




Avatar
PH
Un argument non typé est typé par défaut comme variant.
Le typage ne concerne que la variable précédant le as.

msnews.microsoft.com a écrit :
Je vais essayer comme ça...

Je te remercie... et bonne fin d'année !

Michel

"LE TROLL" <le a écrit dans le message de news:
OXSW$
Bonjour,

Je crois que ce n'est que le dernier qui est string, les autres
variant,
car dans l'exemple VB, ça donne :

MyFunc(MyStr As String, MyArg1 As Integer

Donc, a priori il faut typer chaque élément entre virgule, ou sinon =
défaut
?

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"msnews.microsoft.com" a écrit dans le message de
news:
%
| Bonjour,
|
| Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION
| ci dessous :
|
| Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie As
| String)
|
|
| Plus précisément quel est le type des 3 1er arguments ? mon "As String"
| concerne t-il juste le dernier ? ou tous les arguments ? et s'il
concerne
| quue le dernier, quel est le type des 3 autres ?
|
| Avec tous mes remerciements.
|
| Michel
|
|








Avatar
msnews.microsoft.com
Merci PH

Cordialement,

MJ

"PH" a écrit dans le message de news:
%
Un argument non typé est typé par défaut comme variant.
Le typage ne concerne que la variable précédant le as.

msnews.microsoft.com a écrit :
Je vais essayer comme ça...

Je te remercie... et bonne fin d'année !

Michel

"LE TROLL" <le a écrit dans le message de news:
OXSW$
Bonjour,

Je crois que ce n'est que le dernier qui est string, les autres
variant,
car dans l'exemple VB, ça donne :

MyFunc(MyStr As String, MyArg1 As Integer

Donc, a priori il faut typer chaque élément entre virgule, ou sinon =
défaut
?

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"msnews.microsoft.com" a écrit dans le message de
news:
%
| Bonjour,
|
| Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION
| ci dessous :
|
| Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie
As
| String)
|
|
| Plus précisément quel est le type des 3 1er arguments ? mon "As
String"
| concerne t-il juste le dernier ? ou tous les arguments ? et s'il
concerne
| quue le dernier, quel est le type des 3 autres ?
|
| Avec tous mes remerciements.
|
| Michel
|
|









Avatar
Jean-marc
msnews.microsoft.com wrote:
Bonjour,



Hello,

Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION ci dessous :

Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie
As String)


Plus précisément quel est le type des 3 1er arguments ? mon "As
String" concerne t-il juste le dernier ? ou tous les arguments ? et
s'il concerne quue le dernier, quel est le type des 3 autres ?



Comme il a déjà été dit, les 3 premiers sont en effet des Variant
et le dernier uniquement un String.

Je voudrais ajouter 2 ou 3 choses:
- Il est recommandé de typer explicitement tous les arguments, pour
différentes raisons (lisibilité, portage, performances et surtout pour
se prémunir de tous les bugs potentiels générés par l'emploi du type
Variant)
- Il est également recommandé de spécifier explicitement le type
de passage Byval ou Byref, pour le même genre de raisons.

Je t'invite à consulter la FAQ:

Quelle est la différence entre les mots-clés "ByVal" et "ByRef" ?
http://faq.vb.free.fr/index.php?question#

Comment définir un ou des arguments optionnels lors de l'appel d'une
fonction ?
http://faq.vb.free.fr/index.php?question 3

Comment et pourquoi faut-il déclarer les variables d'un programme ?
http://faq.vb.free.fr/index.php?question0

Aide en ligne de Sub et Function :
http://msdn.microsoft.com/en-us/library/aa266305(VS.60).aspx

Note: ta fonction devrait aussi spécifier le type de son retour.
Si elle ne retourne rien, alors il faut en faire une Sub.
Sinon, expliciter son type, par exemple un Type Booléen, la
fonction retournant True en cas de succès et False en cas d'échec.

Même si elle ne retourne pas directement un résultat, retourner
explicitement une valeur est toujours recommandé.

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
PH
Jean-marc a écrit :
msnews.microsoft.com wrote:
Bonjour,



Hello,

Quelqu'un pourrait il me dire quel est le type des arguments de la
FUNCTION ci dessous :

Function MaFonction(RepEntree, FichierEntree, RepWork, FichierSortie
As String)


Plus précisément quel est le type des 3 1er arguments ? mon "As
String" concerne t-il juste le dernier ? ou tous les arguments ? et
s'il concerne quue le dernier, quel est le type des 3 autres ?







Note: ta fonction devrait aussi spécifier le type de son retour.
Si elle ne retourne rien, alors il faut en faire une Sub.
Sinon, expliciter son type, par exemple un Type Booléen, la
fonction retournant True en cas de succès et False en cas d'échec.

Même si elle ne retourne pas directement un résultat, retourner
explicitement une valeur est toujours recommandé.

Cordialement,



Il s'agit d'une fonction donc elle retourne un résultat, qu'il soit
utilisé ou non. Le type du résultat n'étant pas précisé c'est un variant
et si au retour on l'utilise il y aura presque certainement transtypage.
Cela n'enlève rien aux remarques de Jean-Marc qui sont des remarques de
bon sens.

L'intérêt des fonctions est faire des traitements en cascade :
par exemple MaFonction renvoie un nom de fichier avec un caractère nul
(chr$(0)) suivi plusieurs espace

On pourra simplement écrire

NomDuFichier=Trim(Replace(Mafonction(RepEntree, FichierEntree, RepWork,
FichierSortie),chr$(0)," "))

qui renverra le nom du fichier sans le caractère nul ni les espaces
(devant ou derrière d'ailleurs)

Cet exemple n'est pas tout à fait anodin puisqu'il s'agit du traitement
d'un des résultats de l'API GetOpenFileName qui permet d'ouvrir un
fichier avec une boîte de dialogue.