IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Problème Paramètres


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [VB6]Problème Paramètres
    Bonjour !
    Je voudrais envoyer plusieurs commandes(arguments) mais ceux ci contiennent des espaces:
    app.exe "param 1" "param 2"

    mais je n'y arrive pas. Pouvez vous m'aider ? merci !

    P.S j'utilise:
    args=Split(command()," ")

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    tu peux utiliser un caractère générique (genre %, par exemple) dans tes arguments
    tu fais le Split puis un Replace de ton caractère par un espace dans chaque argument

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    D'accord. Mais je pensais à séparer les deux paramètres(qui contiennent des espaces) par des guillemets.

    "parametre_un"_"parametre_2"

    Le _ simbolise un espace.

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    SVP ! c'est très important !

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Si j'ai bien compris ta question, il s'agit de paramètres de ligne de commande pour appeler ton appli? Si oui, va faire un tour sur le forum Développement Windows. Mais à mon avis, tu peux pas mettre d'espaces dans tes valeurs d'arguments. En tous cas, j'ai jamais vu ça.

  6. #6
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Il s'agit juste d'un traitement sur une chaine de caractères. La seule difficulté est de déterminer les espaces séparateurs et les guillemets.
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Public Sub Main()
        Dim tabArgs() As String
     
        GetArgs Command(), tabArgs
     
        For Index = LBound(tabArgs) To UBound(tabArgs)
            Debug.Print tabArgs(Index)
        Next Index
    End Sub
     
    Private Sub GetArgs(strCmd As String, ByRef args() As String)
        Dim Index As Integer
        Const DELIMITER As String = " "
        Const BLOCK As String = "||"
     
        strCmd = SpecialReplace(strCmd, DELIMITER, BLOCK)
     
        args = Split(strCmd, DELIMITER)
     
        For Index = LBound(args) To UBound(args)
            args(Index) = Replace(args(Index), BLOCK, DELIMITER)
        Next Index
    End Sub
     
    Private Function SpecialReplace(ByVal strString As String, strSearch As String, strReplace As String) As String
        Dim flagReplace As Boolean
        Dim Index As Integer
        Dim CurrentChar As String
     
        For Index = 1 To Len(strString)
            CurrentChar = Mid(strString, Index, 1)
     
            If CurrentChar = Chr(34) Then flagReplace = Not flagReplace
            If CurrentChar = strSearch And flagReplace Then CurrentChar = strReplace
     
            SpecialReplace = SpecialReplace & CurrentChar
        Next Index
     
        SpecialReplace = Replace(SpecialReplace, Chr(34), vbNullString)
    End Function

    Si tu passes en paramètre de GetArgs cette chaine :

    Si tu passes "en paramètre" de "GetArgs cette chaine"
    Tu obtiens alors :

    tabArgs(0) = Si
    tabArgs(1) = tu
    tabArgs(2) = passes
    tabArgs(3) = en paramètre
    tabArgs(4) = de
    tabArgs(5) = GetArgs cette chaine
    Cela répond-il à ta question?

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Exactement ce que je cherchais ! Merci Catbull !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RS 232 dans VB6
    Par xav59124 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/06/2012, 19h37
  2. probl avec swing, tuto pas tres clair
    Par Marc_3 dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 24/03/2006, 15h51
  3. [Comm] Changer les Bauds dans une com RS-232
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/01/2006, 10h08
  4. RS 232 envoyer des donnees
    Par psyko_flex dans le forum C
    Réponses: 2
    Dernier message: 22/11/2005, 18h49
  5. Aide sur la RS 232
    Par Andr0 dans le forum C
    Réponses: 5
    Dernier message: 12/04/2005, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo