Cette petite procédure permet d'analyser la ligne de commande de votre application ou tout autre chaine de caractères. Cela est très pratique quand le programme reçoit ces paramètres ainsi. Par exemple, votre programme est lancé avec la ligne de comande :
monprog.exe -a -b"un chemin complexe" -c:5 d
ma procédure va lors retourner un tableau de strings avec les valeurs suivantes:{
-a
-b"un chemin complexe"
-c:5
d
}donc vous n'avez tout simplement qu'à changer un paramètre pour que la procédure pour que les guillemets ne soient pas inclus et vous pouvez faire un split pour avoir paramètre:valeur.
Source / Exemple :
'Fait par DeadlyPredator le 11 mai 2005
'strCommandLine: chaine de caractères qu'il faut analyser
'aArgs: un tableau de strinsg (dim aArgs() as string)
'bKeepQuotes: si il faut conserver les guillemets
'bErase: si true, la procédure efface le tableau de strings que vous lui envoyé avant de l'utiliser
Sub ParseCommandLine(ByVal strCommandLine As String, ByRef aArgs() As String, Optional bKeepQuotes As Boolean = True, Optional bErase As Boolean = False)
On Error Resume Next
Dim i As Long, bInStr As Boolean, strCar As String, index As Long, strArg As String
If bErase Then Erase aArgs Else: index = UBound(aArgs) + 1: Err.Clear
For i = 1 To Len(strCommandLine)
strCar = Mid$(strCommandLine, i, 1)
Select Case strCar
Case """"
bInStr = Not bInStr
If bKeepQuotes Then strArg = strArg & """"
Case " "
If bInStr Then
strArg = strArg & strCar
Else
If Not Trim$(strArg) = vbNullString Then
ReDim Preserve aArgs(index)
aArgs(index) = strArg
index = index + 1
End If
strArg = vbNullString
End If
Case Else
strArg = strArg & strCar
End Select
Next
ReDim Preserve aArgs(index)
aArgs(index) = strArg
End Sub
Private Sub main()
Dim aParams() As String, strJob As String, i As Long
strJob = "-a -b""un chemin complexe"" -c:5 d" 'strJob pourrait être remplacer par Command$ pour analyser la ligne de commande du programme
ParseCommandLine strJob, aParams, False, False
For i = 0 To UBound(aParams)
MsgBox (aParams(i))
Next
End Sub
Conclusion :
Je ne crois pas qu'il y ait de bugs
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.