Récupération des paramètres passés au programme

Description

Ce programme affiche dans une listbox les paramètres qui lui ont été passés que ce soit par la ligne de commande ou par Drag and drop.
C'est pas un code compliqué mais j'avoue qu'il ma un peu pris la tête alors soyez pas trop méchant sur les commentaires svp ;-)

------

28/06/2003 : Pour ceux qui n'ont pas VB6 !
J'ai trouvé sur le site une fonction équivalent a la fonction Split, je l'ai mis dans le ZiP. Elle a été écrite par DeAtHCrAsH, et vous pouvez la trouver a l'adresse:
http://www.vbfrance.com/article.aspx?Val=4578

Source / Exemple :


'La version avec commentaire se trouve dans le ZiP

Option Explicit

Private Sub Form_Load()
Dim ComLine  As String
Dim ArgArray() As String
Dim NbArg As Integer
Dim i, j, k As Integer
Dim CurArg As String
Dim SpltChr As String

On Error Resume Next

ComLine = Command()
SpltChr = Chr(34) & " " & Chr(34)
                                    
If NbArgsBetweenQuotes(ComLine) = 1 Then
    List1.AddItem ComLine
    GoTo InfoNbArg
ElseIf NbArgsBetweenQuotes(ComLine) = 0 Then
    ArgArray = Split(ComLine, " ")
ElseIf NbArgsBetweenQuotes(ComLine) <> 1 And NbArgsBetweenQuotes(ComLine) <> 0 Then
    ArgArray = Split(ComLine, SpltChr)
    GoTo Addlist
End If

Addlist:
For i = LBound(ArgArray) To UBound(ArgArray) Step 1
    CurArg = ArgArray(i)
    If Left(CurArg, 1) <> Chr(34) Then
        ArgArray(i) = Chr(34) & CurArg
    ElseIf Right(CurArg, 1) <> Chr(34) Then
        ArgArray(i) = CurArg & Chr(34)
    End If
    If Left(CurArg, 1) <> Chr(34) And Right(CurArg, 1) <> Chr(34) Then
        ArgArray(i) = Chr(34) & CurArg & Chr(34)
    End If
    List1.AddItem ArgArray(i)
Next i

InfoNbArg:
NbArg = (UBound(ArgArray) - LBound(ArgArray))

If NbArg = -1 Then
    Label1.Caption = "Aucun argument n'a été passé au programme"
ElseIf NbArg = 0 Then
    Label1.Caption = "L'argument suivant à été passé au programme :"
ElseIf NbArg > 0 Then
    Label1.Caption = "Les arguments suivants ont été passés au programme :"
End If

End Sub

Function NbArgsBetweenQuotes(Str As String) As Integer
Dim i As Integer
Dim ContainsQuote As Boolean
Dim NbQuote As Integer
Dim Nb As Integer
Dim cur As String

NbQuote = 0

For i = 1 To Len(Str)
    cur = Mid(Str, i, 1)
    If cur = Chr(34) Then
        ContainsQuote = True
        NbQuote = NbQuote + 1
    End If
Next i

If NbQuote Mod 2 = 1 Then
    MsgBox "Nombre de guillemets impair", , "Ya un Problème !"
ElseIf NbQuote Mod 2 = 0 Then
    Nb = NbQuote / 2
End If

NbArgsBetweenQuotes = Nb

End Function

Conclusion :


J'ai finalement fourni une alternative a Split mais je ne l'ai pas écrite !

Codes Sources

A voir également

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.