Une petite source sans prétention afin d'aider ceux en galère (si tu ne te sens pas concerné alors ne t'y arrête pas) qui permet de récupérer les paramètres que l'on place sur la ligne de commande.
Qu'est-ce que la ligne de commande ? cliquer sur Projets/Propriétés puis sur le 2ème onglet (Make en anglais) il y a une texte box "Arguments de la ligne de commande"
Lorsque le projet est compilé il suffit de tirer un raccourci du .exe et puis on peut les mettre dans Propriétés "Cible"
A quoi cela sert ? si par exemple l'on veut que le programme s'execute de tel ou tel façon (si il y tel argument tu fais ça sinon...) par exemple en anglais ou en Francais il suffit d'y mettre l'option /language=Anglais sinon si le programme ne le trouve pas il sera par défault en français ou bien pour déboguer le programme sans devoir l'executer en mode débug on met l'option /debug=1 et le programme comprendra qu'il faut écrire un fichier quelque part pour que l'utilisateur comprenne pourquoi le prog ne fonctionne pas
Comment on s'en sert ? pour plus de clarté mettre les arguments de tel manière /paramètre=XXX /language=YYY
Attention tous les arguments sont séparés par un espace
Dans le programme pour faire un appel de la fonction faire:
Dim ParamRecupere As String
ParamRecupere = sRecupererParamLigneCommande("/Language=")
et l'on obtiendras dans la variable ParamRecupere ce qu'il y a après "/Language="
par exemple
If ParamRecupere = "Anglais" then
Afficher programme en anglais
else
Afficher programme en français
end if
Source / Exemple :
'*************************** ANCIENNE VERSION : *****************************
'******************************************************************************
'* fonction qui récupère l'entete du paramètre sur la ligne de commande
'* et renvoi le paramètre correspondant
'*
'* utilise la fonction iNbrArg pour connaitre le nombre d'arguments sur la
'* ligne de commande (séparés par un espace)
'*
'* utilise la fonction iNumArg qui retourne l'argument correspondant
'* à une position dans la ligne de commande
'******************************************************************************
Public Function sRecupererParamLigneCommande(ByVal sEntete As String) As String
Dim i As Integer
For i = 0 To iNbrArg()
If Left$(UCase$(iNumArg(i)), Len(UCase$(sEntete))) = UCase$(sEntete) Then
sRecupererParamLigneCommande = Mid$(iNumArg(i), Len(sEntete) + 1)
End If
Next i
End Function
'******************************************************************************
'* Cette fonction retourne le nombre d'argument de la ligne de commande
'******************************************************************************
Function iNbrArg() As Integer
Dim i As Integer
Dim iNbArg As Integer 'compte le nombre d'arguments
iNbArg = 0
If Len(Trim$(Command$)) > 0 Then
For i = 1 To Len(Trim$(Command$))
's'il y a un blanc alors c'est un nouveau param sur la ligne de cmd
If (Mid$(Command$, i, 1) = " ") Or (i = Len(Command$)) Then
iNbArg = iNbArg + 1
End If
Next i
End If
iNbrArg = iNbArg
End Function
'******************************************************************************
'* Cette fonction retourne l'argument correspondant à une position
'* dans la ligne de commande
'* (Le premier argument a le numéro 0)
'******************************************************************************
Function iNumArg(ByVal iNbrArg As Integer) As String
Dim i As Integer
Dim iNbArg As Integer
Dim sArg As String
iNbArg = 0
sArg = ""
If Len(Trim$(Command$)) > 0 Then
For i = 1 To Len(Trim$(Command$))
sArg = sArg & Mid$(Command$, i, 1)
If (Mid$(Command$, i, 1) = " ") Or (i = Len(Command$)) Then
If iNbArg = iNbrArg Then
iNumArg = Trim$(sArg)
Else
sArg = ""
End If
iNbArg = iNbArg + 1
End If
Next i
End If
End Function
'*************************** NOUVELLE VERSION : *****************************
'******************************************************************************
'* renvoie la valeur du parametre demande
'* format /PAR:NNNN pour une meilleure visualisation
'*
'* le nom du parametre ne contient pas forcement un "/" ou un "=" puisque
'* celui ci fait parti du nom
'* Attention : chaque parametre doit etre separe par un blanc
'******************************************************************************
Function sRecupererParamLigneCommande(sNomParametre As String) As String
Dim iPos As Integer
Dim iposFin As Integer
' on recherche le nom de parametre
iPos = InStr(Command$, sNomParametre)
If iPos > 0 Then
iposFin = InStr(iPos, Command$, " ")
If iposFin > 0 Then
' on a un blanc derriere le parametre
sRecupererParamLigneCommande = Mid$(Command$, iPos + Len(sNomParametre), iposFin - iPos - Len(sNomParametre))
Else
' on est a la fin de la ligne de parametres et l'on n'a pas de blancs
sRecupererParamLigneCommande = Mid$(Command$, iPos + Len(sNomParametre))
End If
Else
sRecupererParamLigneCommande = ""
End If
End Function
Conclusion :
' à mettre dans un module
' n'hesitez pas à me contacter pour des questions ou pour améliorer la source et notez please !!
' je rappelle que cette source est faite par un débutant pour débutant ne soyez pas sévère
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.