Auto complétion dans une application console

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 8 févr. 2007 à 10:57
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 8 févr. 2007 à 17:07
Bonjour,
Quelqu'un sait-il comment on pourrait implémenter un système d'auto-complétion de commandes dans une application console (utilisant le template, pas tout refaire...) comme lorsqu'on appuie sur Tab dans la console windows ou dans le shell Linux ?
Merci !

<hr size="2" width="100%" />Julien.

3 réponses

NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
8 févr. 2007 à 12:35
Bonjour

Avec ou sans différentiation de la casse (minuscule majuscule) ?


imports System.Collection

imports System.Collection.Generic '(.NET2)


Dim mLstWord as new list(of string) ' ou ArrayList en .NET1, avec ajout du transtypage.

'Pour une liste dtrié, utilise SortedList


Private Function AutoCompletion(byval pTexteTape as String) as String

   

    for each lStr as String in mLstWord 'ou mLstWord.Values si SortedList

       if lStr.startwith(pTexteTape) Then

          Return lStr

       End if

    Next

    return pTexteTape

End function


Pour optimiser la recherche, tu peux aussi utiliser Instr :

lStr.startwith(pTexteTape)   -->  InStr(lStr,pTexteTape)=0


Si la recherche ne trouve rien, elle retourne le paramètre.

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
8 févr. 2007 à 16:50
Salut,
En fait mon problème n'est pas là, il s'agit plutot de l'interaction avec la console. Je ne vois pas comment récupérer et manipuler facilement l'entrée que l'utilisateur est en train de tapper, ni même comment intercepter la touche tab d'ailleurs...

<hr size="2" width="100%" />Julien.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
8 févr. 2007 à 17:07
Ha, j'ai trouvé le début (mouais ça c'était pas trop dur... bon je vais me débroullier...)
If Console.ReadKey.Key = ConsoleKey.Tab Then

<hr size="2" width="100%" />Julien.
0
Rejoignez-nous