Passage de parametres à un "shell"

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 900 fois - Téléchargée 85 fois

Contenu du snippet

Ces deux fonctions permettrent de recuperer "proprement" le nombre de parametres passes a un shell et de les adresser par leur numero.

Source / Exemple :


Public Function LitParametre(Compte As Integer) As String

    Dim i As Long
    Dim j As Integer
    Dim c As String
    Dim bInside As Boolean
    Dim bQuoted As Boolean

    j = 1
    bInside = False
    bQuoted = False
    LitParametre = ""

    For i = 1 To Len(Command)

        c = Mid$(Command, i, 1)

        If bInside And bQuoted Then
            If c = """" Then
                j = j + 1
                bInside = False
                bQuoted = False
            End If
        ElseIf bInside And Not bQuoted Then
            If c = " " Then
                j = j + 1
                bInside = False
                bQuoted = False
            End If
        Else
            If c = """" Then
                If j > Compte Then Exit Function
                bInside = True
                bQuoted = True
            ElseIf c <> " " Then
                If j > Compte Then Exit Function
                bInside = True
                bQuoted = False
            End If
        End If

        If bInside And j = Compte And c <> """" Then LitParametre = LitParametre & c

    Next i

End Function
'------------------------------------------------
Public Function NbParametres() As Integer

    Dim i As Long
    Dim c As String
    Dim bInside As Boolean
    Dim bQuoted As Boolean

    NbParametres = 0
    bInside = False
    bQuoted = False

    For i = 1 To Len(Command)

        c = Mid$(Command, i, 1)

        If bInside And bQuoted Then
            If c = """" Then
                NbParametres = NbParametres + 1
                bInside = False
                bQuoted = False
            End If
        ElseIf bInside And Not bQuoted Then
            If c = " " Then
                NbParametres = NbParametres + 1
                bInside = False
                bQuoted = False
            End If
        Else
            If c = """" Then
                bInside = True
                bQuoted = True
            ElseIf c <> " " Then
                bInside = True
                bQuoted = False
            End If
        End If

    Next i

    If bInside Then NbParametres = NbParametres + 1

End Function

Conclusion :


La fonction NbParametres renvoie un entier représentant le nombre de paramètres passés en ligne de commande..
La fonction LitParametre permet de lire l'un de ces parametres.

A voir également

Ajouter un commentaire

Commentaires

Un grand merci pour ces deux fonctions simples mais efficaces
Voila ce que je cherchais. Je savais que c'etait simple mais impossible de trouver cette info dans l'aide MSDN (trop bordelique).
Un grand merci.
look at
http://www.vbfrance.com/article.asp?Val=62

>...
...
La reside la difficulte: impossible de savoir (via le code de retour) si la chaine a ete trouvee.
J'ai essaye un autre truc, c'est faire une redirection (>) vers un fichier que je cree pour la circonstance;au niveau de
....
....
Bonjour pepito !
+tot qu'un commentaire, j'ai une question a te poser a propos de la fct° SHELL.
Au sein d'1 prog. VB, je cherche a utiliser la fct° SHELL qui appellera l'exe findstr (recherche une chaine dans un fichier).Je sais l'utiliser mais recuperer l'ID normalement retourne par SHELL ne m'interesse pas.Ce que je veux c'est savoir si la chaine recherchee a ete trouvee.
La reside la difficulte: impossible de savoir (via le code de retour) si la chaine a ete trouvee.
J'ai essaye un autre truc, c'est faire une redirection (>) vers un fichier que je cree pour la circonstance;au niveau de la ligne de cmde DOS, pas de pb (ca marche impec -pour un test-);j'ecris exactement la meme cmde dans la fct° SHELL ---> ca foire (pas 1 erreur, mais impossible de creer le fichier vers lequel s'est faite la redirection).
AS-TU UNE SOL. A CE PB ????

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.