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

Soyez le premier à donner votre avis sur cette source.

Vue 5 629 fois - Téléchargée 535 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
Messages postés
5
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
29 octobre 2008

Pas mal, c'est ce que je cherchais. Merci.
Messages postés
7
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
1 février 2008

Impec...

10/10

tout à fait ce que je cherche !!!!

Merci!
Messages postés
18
Date d'inscription
jeudi 19 octobre 2000
Statut
Membre
Dernière intervention
15 août 2006

pas mal
Messages postés
4
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
24 septembre 2003

Cé très bon ton prog.
Messages postés
55
Date d'inscription
vendredi 6 décembre 2002
Statut
Membre
Dernière intervention
8 mars 2007

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.