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 !
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.