ANALYSER UNE LIGNE DE COMMANDE, SIMPLEMENT

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 12 mai 2005 à 10:59
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010 - 14 mai 2005 à 08:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31339-analyser-une-ligne-de-commande-simplement

Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
14 mai 2005 à 08:36
Des gens qui estiment que leur jugement se passe de commentaires
DeadlyPredator Messages postés 222 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 30 juin 2008
13 mai 2005 à 22:54
Oups, j'avais mal comprit le sens du not, il inverse la valeur de la variable. Je vais ajuster ça et suprimer les call et let car ça fait du texte pour rien. J'ai choisit d'utiliser une chaine de caractère à la place du command$ car comme ça, le monde n'est pas oubligé de lancer le proc avec une ligne de commande (ou modifier l'option command line de vb). Si ça marche pour cette chaine de caractère là, ça va aussi marcher pour command$ ... et c qui les personnes qui donnent des 1/10?
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
13 mai 2005 à 16:54
Mettre les Let et Call ça n'a aucun effet sur l'exécution du programme, si tu les met pas ils sont implicites et rajoutés par VB lors de la compilation de toute façon.

Et pour Not, j'ai pas trop compris ton explication :/ Il me semblait qu'éviter un If était plutôt à éviter....

Et sinon, tu pourrais donner l'exemple (dans Main) avec la chaine de commande passée au programme ? Pour montrer comment faire
DeadlyPredator Messages postés 222 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 30 juin 2008
12 mai 2005 à 22:06
Salut

Je ne suis pas sûre que le fait de faire bInStr Not bInStr aide vraiment. Selon moi, vb ferait une opération de plus car en asm, avec un, c'est un simple mov qui est effectué. Avec ta méthode, vb va devoir inverser la valeur de bInStr, puis faire un mov ...

pour Let et Call, j'aimerais bien avoir l'avis d'un expert qui va pouvoir confirmer.

Pour l'idée de spliter, ça serait possible cependant, je crois que ça demanderait le double de traitement. Ma boucle est très simple et rapide. Split doit être lourd et de toute facon je vais devoir scanner le string au complet.

Merci pour l'intérêt porté à ce code
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
12 mai 2005 à 10:59
---------------------------------------------
If bInStr Then
Let bInStr = False
Else
Let bInStr = True
End If

peut s'écrire plus simplement :

bInStr = Not bInStr

---------------------------------------------

Let et Call n'optimisent qu'une seule chose : la compatibilité avec d'anciennes versions de VB. L'execution du code n'y gagne rien

---------------------------------------------

En utilisant la fonction Split, une bonne partie du travail était déjà faite. Il ne restait plus qu'à recoller les morceaux qui sont entre guillemets. Mais je suppose que tu l'as soigneusement évitée.

aParams = Split(strJob, " ", , vbTextCompare)


---------------------------------------------

A part çà, le code est bien foutu. Pas de bug en vue. C'est nickel. :o)
Rejoignez-nous