Shenzhy
Messages postés5Date d'inscriptionmercredi 18 avril 2007StatutMembreDernière intervention19 mai 2010
-
21 déc. 2008 à 21:05
sturtrid
Messages postés133Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention13 juillet 2012
-
23 déc. 2008 à 04:23
Salut a tous les développeurs et surtout aux programmeurs Visual Basic.
La presentation d'un programme en mode console est le plus souvent très
monotones. En effet, c'est pas aussi facile qu'en mode graphique ou il
y a des milliards de possibilités en matière d'amélioration du cote
esthétique d'un programme...
En mode console, tout est tellement sinistre
... Je sais qu'il y a des moyens de rendre une meilleure qualité de
travail. Malheureusement dans les tutoriels sur le Visual Basic on
apprend pas les trucs permettant de faire du beau travail.
C'est pourquoi je m'adresse a vous autres. J'aimerais par exemple
savoir comment je pourrais améliorer l'affichage d'un tableau... En
effet, si on veut afficher des informations en colonnes, la dimension
des colonnes dépendra de la taille du mot qui sera affiché. Si on
connait a l'avance les mots qu'on affichera dans les colonnes, on peut
s'arranger en.... trichant : en inserant des espaces. Mais, ce sera complement different si on ne sait pas encore quelles informations seront entrees....
Par exemple un programme qui demande des informations sur l'utilisateur et affiche le liste des utilisateurs avec info...
Ex:
Tiens le site ne permet pas d'inserer plus d'un espace... j'insere des tirets a la place
Voila ce qui arriverait si je mettais 10 espaces entre chaque colonnes (10 tirets dans cet exemple)...
console.out.writeline(utilisateur.getNom &"----------"&
utilisateur.getPrenom & "----------" & utilisateur.getAge &
"ans")
'utilisateur etant un objet d'une classe utilisateurs
on obtient:
Nom----------Prenom----------Age
Zozor----------Luc----------15 ans
Zidane----------Zinedine----------34 ans
Chirac----------Jacques----------90 ans
Moi----------Meme----------22ans
Jacques-Jean----------Aimar-----------30 ans
Anticonstitutionellement---------- Pierre Robert Richard Jean Baptiste Poquelin-----------200ans
Comme vous pouvez le constater on nage en plein delire des qu'il y a une information trop longue le tableau va deborder, et ce n'est pas ce qu'on aurait souhaite, n'est-ce pas.... . C'est vrai,j'ai un peu exagere. Mais bon j'aimerais savoir s'il n'y a pas moyen d'eviter de pareils désagréments ....
J'aimerais savoir egalement s'il n'y a pas moyen de modifier la police et la couleur...
Finalement si vous connaissez d'autres astuces pouvant permettre d'ameliorer la presentation, n'hesitez pas
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 21 déc. 2008 à 22:18
Effectivement, en mode console tu es très limité, et tu ne peux pas à ma connaissance, définir ni la taille, ni la police, ni la couleur du texte.
Par contre, tu as raison, c'est bien avec les espaces qu'il faut jouer, mais dans ton cas, ce n'est pas 10 espaces qu'il fat rajouter, mais (10- longueur du mot) et penser aussi à tronquer les mots qui font plus de 10 caractères.
D'un autre coté, le mode console n'est pas fait non plus pour afficher quantités d'informations non plus.
Et pour la longeur des champs tu peux utilisé
des padding en dotnet qui complete par des espaces a gauche ou a droite
ou des subtring pour limiter les tailles des champs.
Apres pour voir une applications concrete qui peut meme etre hebergeur dans un programme (il me semble)
tu peux faire un tour du coté de powershell pour voir comme c'est mis en place.
sturtrid
Messages postés133Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention13 juillet 20121 23 déc. 2008 à 04:23
Salut Shen !
Vivi... Je suis bien d'accord avec tout le monde ici, en console c'est triste et pas si simple... Surtout si tu es habitué aux appli windows !
Mais bonne nouvelle, y'a quand même des p'tites astuces pour rendre l'écran moins monotone!
'Premier coup de baguette magique et hop on ajoute un titre à la fenêtre.
'Ca peux faire plus intimiste avec le programme...
Console.Title = "Le titre de ma jolie console"
'Puis on peut donner des dimensions agréables ET pratiques...
Console.BufferHeight = 300 Console.BufferWidth = 90 Console.WindowWidth = 90
Console.WindowHeight = 42
'On ajoute un peu de couleur dans ce monde binaire... Fond et texte !
Console.BackgroundColor= ConsoleColor.DarkBlue
Console.ForegroundColor= ConsoleColor.Yellow
'Une raz du buffer peut être utile pour que les nouvelles couleurs soient bien prises en compte !
'(peut dépendre de comment est appelé ton prog...)
Console.Clear()
'Et cerise sur le gâteau on peut ajouter une petite barre d'avancement quand le traitement doit être suivi!
'Colle ce code dans un nouveau projet et compile pour tester...
Sub Main()
'Colle ici tout le code ci-dessus...
Console.WriteLine(_
"Ma jolie console pleine de couleurs est arrivée !" _
& vbCrLf & "Fait un bisou sur la touche Enter pour continuer...")
Console.ReadLine()
Console.WriteLine(vbCrLf & vbCrLf & vbCrLf & vbCrLf & _
" Shen's SuperBar is coming soon...")
Console.BackgroundColor = ConsoleColor.Cyan
Console.SetCursorPosition(20, 10)
For i = 0 To 37 Console.Write(" ") : Threading.Thread.Sleep(30)
Next
Console.ReadLine()
End Sub
Vala, cela me semble être un bon point de départ pour obtenir une ineterface plus conviviale et vivante...