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

Soyez le premier à donner votre avis sur cette source.

Vue 5 790 fois - Téléchargée 566 fois

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

Ajouter un commentaire Commentaires
cs_Briaeros Messages postés 5 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 29 octobre 2008
23 mai 2007 à 18:02
Pas mal, c'est ce que je cherchais. Merci.
zacfelix Messages postés 7 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 1 février 2008
4 juin 2004 à 23:54
Impec...

10/10

tout à fait ce que je cherche !!!!

Merci!
cs_ampeg Messages postés 18 Date d'inscription jeudi 19 octobre 2000 Statut Membre Dernière intervention 15 août 2006
25 juin 2003 à 09:02
pas mal
RAMASSPIPO Messages postés 4 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 24 septembre 2003
12 juin 2003 à 14:22
Cé très bon ton prog.
skram666 Messages postés 55 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 8 mars 2007
12 juin 2003 à 09:48
Enorme cette source c'est ce que je chercher pour mes logs en plus allez 9/10
et continu comme sa...@+
;-)
skram
Afficher les 8 commentaires

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.