A voir également:
- C# Windows Form
- Clé windows 10 gratuit - Guide
- Montage video windows - Guide
- Windows ne démarre pas - Guide
- Windows 10 gratuit - Accueil - Mise à jour
- Windows movie maker windows 11 - Télécharger - Montage & Édition
3 réponses
Utilisateur anonyme
13 févr. 2018 à 09:08
13 févr. 2018 à 09:08
Et bien pour commencer, comme écrit dans l’article, il manque ce que tu as tenté.
A défaut, puisque le mode console fonctionne, au moins ce code.
Ceci afin d’avoir une idée de ton niveau, parce que dans la dizaines de solutions qui me viennent à l’esprit, il doit y en avoir que tu n’as pas encore vu.
A défaut, puisque le mode console fonctionne, au moins ce code.
Ceci afin d’avoir une idée de ton niveau, parce que dans la dizaines de solutions qui me viennent à l’esprit, il doit y en avoir que tu n’as pas encore vu.
Je fais de la programmation depuis Septembre donc assez léger le niveau mais cela m'intéresse.
Le code en console n'est pas que de moi, j'avais juste à le compléter et comprendre son fonctionnement sur les grandes lignes, je le rajoute quand même au cas ou.
Malheureusement , je ne pense pas que ça aiderai à déterminer mon niveau.
Je pense avoir trouver une solution:
String = String + Environnement.NewLine + NewString;
Je testerai plus tard si cela fonctionne.
Explications:
Le code n'est clairement pas optimiser, il as été compléter en "tâtonnant" et on avait du temps à tuer.
Il devait également afficher les derniers messages sur une page web via un serveur exécuter dans le code, partie que je n'utilise pas pour le passage en Winforms.
Le code en console n'est pas que de moi, j'avais juste à le compléter et comprendre son fonctionnement sur les grandes lignes, je le rajoute quand même au cas ou.
Malheureusement , je ne pense pas que ça aiderai à déterminer mon niveau.
Je pense avoir trouver une solution:
String = String + Environnement.NewLine + NewString;
Je testerai plus tard si cela fonctionne.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; namespace TP4 { class Program { static UdpClient sockUdp; static HttpListener Serveurweb ; static String[] MessageTab = new String[10]; static void Main(string[] args) { String Pseudo = "", Message = ""; Console.Write("Saisir votre pseudo: "); Pseudo = Console.ReadLine(); System.Threading.Thread.Sleep(100); Console.Write("█"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("████"); System.Threading.Thread.Sleep(100); Console.Write("██"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(200); Console.Write("██"); System.Threading.Thread.Sleep(300); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("██"); System.Threading.Thread.Sleep(200); Console.Write("██████"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" 100%"); Console.WriteLine(""); Console.WriteLine("Vous êtes connecté en tant que: " + Pseudo); Console.ResetColor(); Console.WriteLine("Appuyer sur Entrer pour autoriser la saisie"); ConnectUdp(); WebUdp(); sockUdp.BeginReceive(new AsyncCallback(ReceptionUdp),null); Serveurweb.BeginGetContext(new AsyncCallback(ReceptionDmdWeb),null) ; do { if (Console.ReadKey().Key == ConsoleKey.Enter) { Console.Write("Vous: "); Message = Console.ReadLine(); EmissionUdp(Message, Pseudo); } } while (Message != "Exit"); } static void EmissionUdp(string Message, string Pseudo) { Byte[] TrameEmission=Encoding.ASCII.GetBytes(Pseudo + ": " + Message); sockUdp.Send(TrameEmission,TrameEmission.Length, new IPEndPoint(IPAddress.Parse("239.54.55.57"), 8800)); } static void ConnectUdp() { sockUdp = new UdpClient(8800, AddressFamily.InterNetwork); sockUdp.JoinMulticastGroup(IPAddress.Parse("239.54.55.57")); sockUdp.MulticastLoopback = false; } static void WebUdp() { Serveurweb = new HttpListener(); Serveurweb.Prefixes.Add("http://+:80/Temporary_Listen_Addresses/MesPages/"); Serveurweb.Start(); } static void ReceptionUdp(IAsyncResult MsgRecu) { //Recuperation de la trame recue (message et caracterre emetteur) IPEndPoint equipementdistant = new IPEndPoint(IPAddress.Any, 0); byte[] Trame = sockUdp.EndReceive(MsgRecu, ref equipementdistant); //Mise sous la forme d'une chaine de caractere String S = Encoding.ASCII.GetString(Trame); MessageTab[9] = MessageTab[8]; MessageTab[8] = MessageTab[7]; MessageTab[7] = MessageTab[6]; MessageTab[6] = MessageTab[5]; MessageTab[5] = MessageTab[4]; MessageTab[4] = MessageTab[3]; MessageTab[3] = MessageTab[2]; MessageTab[2] = MessageTab[1]; MessageTab[1] = MessageTab[0]; MessageTab[0] = Convert.ToString(S); //foreach (string s in MessageTab) Console.WriteLine(S); //On re-arme la reception pour la fois suivante sockUdp.BeginReceive(new AsyncCallback(ReceptionUdp), null); } static void ReceptionDmdWeb(IAsyncResult DemandeHttp) { int incr=0; HttpListenerContext context = Serveurweb.EndGetContext(DemandeHttp); HttpListenerResponse response = context.Response; //Recuperation du flux de sortie System.IO.Stream output = response.OutputStream; for (incr = 0; incr < 9; incr++) { byte[] Message = Encoding.ASCII.GetBytes("<B>" + MessageTab[incr] + "</B></BR>"); output.Write(Message, 0, Message.Length); } output.Close(); //On re arme l’ecoute pour les requetes suivantes Serveurweb.BeginGetContext ( new AsyncCallback(ReceptionDmdWeb), null) ; } } }
Explications:
Le code n'est clairement pas optimiser, il as été compléter en "tâtonnant" et on avait du temps à tuer.
Il devait également afficher les derniers messages sur une page web via un serveur exécuter dans le code, partie que je n'utilise pas pour le passage en Winforms.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Utilisateur anonyme
13 févr. 2018 à 10:07
13 févr. 2018 à 10:07
Ok,
Effectivement
est une solution, cependant au debut tu auras: rien + nouvelle ligne + nouveau texte => donc une ligne vide.
Du coup, il vaut mieux faire
Tu peux aussi regarder la classe stringBuilder, ou string.Join().
Sinon, le textbox est imposé ou c’est un choix?
Effectivement
MonTextBox.Text = MonTextBox.Text + Environnement.NewLine + "Nouveau texte"
est une solution, cependant au debut tu auras: rien + nouvelle ligne + nouveau texte => donc une ligne vide.
Du coup, il vaut mieux faire
MonTextBox.Text = MonTextBox.Text + "Nouveau texte" + Environnement.NewLine
Tu peux aussi regarder la classe stringBuilder, ou string.Join().
Sinon, le textbox est imposé ou c’est un choix?
13 févr. 2018 à 08:53
Oui et ? Je n'ai pas compris l’intérêt de m'envoyer ce liens :/
Je demande juste une idée de solution permettant d'afficher un historique de chaine de caractère dans une textbox avec pour seul règle 1 chaine par ligne.
Si il manque quelque chose, il serait plus judicieux de le dire.
merci d'avance.