Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CLASSE CONSOLE (EN AUTRE POUR EFFACER LA CONSOLE)
Information sur la source
Description
Voila, j'ai du faire une Class pour le lycée, pour effacer la console en C#... Pensant que ça peut etre utile pour certains, je poste donc la classe ici.... Ce n'est pas d'un grand interret en soit... mais ça peut servir...
Source
- /************************************************************************************ *
- * Classe _Console par Thomas Bétrancourt (K-J158) *
- * ********************************************************************************** *
- * Source : http://support.microsoft.com/default.aspx?scid=kb%3Bfr%3B319257 *
- * ********************************************************************************** *
- * Mode d'emploi : *
- * - Copier _Console.cs dans le dossier de votre projet *
- * - Ajouter _Console.cs à votre projet (Menu Projet, Ajouter un composant existant) *
- * - Utiliser _Console à la place de Console (ex: _Console.WriteLine("Coucou");) *
- * ********************************************************************************** */
-
- /*
- * Pour les DllImport et les StructLayout
- */
- using System.Runtime.InteropServices;
-
- namespace System
- {
- public class _Console
- {
- #region Structures
- [StructLayout(LayoutKind.Sequential)]
- struct COORD
- {
- public short x;
- public short y;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- struct SMALL_RECT
- {
- public short Left;
- public short Top;
- public short Right;
- public short Bottom;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- struct CONSOLE_SCREEN_BUFFER_INFO
- {
- public COORD dwSize;
- public COORD dwCursorPosition;
- public int wAttributes;
- public SMALL_RECT srWindow;
- public COORD dwMaximumWindowSize;
- }
- #endregion
-
- #region Importations
- [DllImport("kernel32.dll", EntryPoint="GetStdHandle", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
- private static extern int GetStdHandle(int nStdHandle);
-
- [DllImport("kernel32.dll", EntryPoint="FillConsoleOutputCharacter", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
- private static extern int FillConsoleOutputCharacter(int hConsoleOutput, byte cCharacter, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten);
-
- [DllImport("kernel32.dll", EntryPoint="GetConsoleScreenBufferInfo", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
- private static extern int GetConsoleScreenBufferInfo(int hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
-
- [DllImport("kernel32.dll", EntryPoint="SetConsoleCursorPosition", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
- private static extern int SetConsoleCursorPosition(int hConsoleOutput, COORD dwCursorPosition);
- #endregion
-
- #region Membres
- private static int STD_OUTPUT_HANDLE = -11;
- private static byte EMPTY = 32;
- private static int hConsoleHandle;
- #endregion
-
- #region Méthodes
- public static void Write(char c)
- {
- Console.Write(c);
- }
-
- public static void Write(bool b)
- {
- Console.Write(b);
- }
-
- public static void Write(Decimal d)
- {
- Console.Write(d);
- }
-
- public static void Write(Double d)
- {
- Console.Write(d);
- }
-
- public static void Write(Int32 i)
- {
- Console.Write(i);
- }
-
- public static void Write(Int64 i)
- {
- Console.Write(i);
- }
-
- public static void Write(Object o)
- {
- Console.Write(o);
- }
-
- public static void Write(Single s)
- {
- Console.Write(s);
- }
-
- public static void Write(string Format)
- {
- Console.Write(Format);
- }
-
- public static void Write(UInt32 ui)
- {
- Console.Write(ui);
- }
-
- public static void Write(UInt64 ui)
- {
- Console.Write(ui);
- }
-
- public static void Write(string Format, Object o)
- {
- Console.Write(Format, o);
- }
-
- public static void Write(string Format, params Object[] Argv)
- {
- Console.Write(Format, Argv);
- }
-
- public static void Write(char[] buffer, Int32 i1, Int32 i2)
- {
- Console.Write(buffer, i1, i2);
- }
-
- public static void Write(string Format, Object o1, Object o2)
- {
- Console.Write(Format, o1, o2);
- }
-
- public static void Write(string Format, Object o1, Object o2, Object o3)
- {
- Console.Write(Format, o1, o2, o3);
- }
-
- public static void Write(string Format, Object o1, Object o2, Object o3, Object o4)
- {
- Console.Write(Format, o1, o2, o3, o4);
- }
-
- public static void WriteLine()
- {
- Console.WriteLine();
- }
-
- public static void WriteLine(char c)
- {
- Console.WriteLine(c);
- }
-
- public static void WriteLine(bool b)
- {
- Console.WriteLine(b);
- }
-
- public static void WriteLine(Decimal d)
- {
- Console.WriteLine(d);
- }
-
- public static void WriteLine(Double d)
- {
- Console.WriteLine(d);
- }
-
- public static void WriteLine(Int32 i)
- {
- Console.WriteLine(i);
- }
-
- public static void WriteLine(Int64 i)
- {
- Console.WriteLine(i);
- }
-
- public static void WriteLine(Object o)
- {
- Console.WriteLine(o);
- }
-
- public static void WriteLine(Single s)
- {
- Console.WriteLine(s);
- }
-
- public static void WriteLine(string Format)
- {
- Console.WriteLine(Format);
- }
-
- public static void WriteLine(UInt32 ui)
- {
- Console.WriteLine(ui);
- }
-
- public static void WriteLine(UInt64 ui)
- {
- Console.WriteLine(ui);
- }
-
- public static void WriteLine(string Format, Object o)
- {
- Console.WriteLine(Format, o);
- }
-
- public static void WriteLine(string Format, params Object[] Argv)
- {
- Console.WriteLine(Format, Argv);
- }
-
- public static void WriteLine(char[] buffer)
- {
- Console.WriteLine(buffer);
- }
-
- public static void WriteLine(char[] buffer, Int32 i1, Int32 i2)
- {
- Console.WriteLine(buffer, i1, i2);
- }
-
- public static void WriteLine(string Format, Object o1, Object o2)
- {
- Console.WriteLine(Format, o1, o2);
- }
-
- public static void WriteLine(string Format, Object o1, Object o2, Object o3)
- {
- Console.WriteLine(Format, o1, o2, 03);
- }
-
- public static void WriteLine(string Format, Object o1, Object o2, Object o3, Object o4)
- {
- Console.WriteLine(Format, o1, o2, 03, o4);
- }
-
- public static int Read()
- {
- return Console.Read();
- }
-
- public static string ReadLine()
- {
- return Console.ReadLine();
- }
-
- public static void Clear()
- {
- int hWrittenChars = 0;
- hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
- CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();
- COORD Home;
- Home.x = Home.y = 0;
- GetConsoleScreenBufferInfo(hConsoleHandle, ref strConsoleInfo);
- FillConsoleOutputCharacter(hConsoleHandle, EMPTY, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, ref hWrittenChars);
- SetConsoleCursorPosition(hConsoleHandle, Home);
- }
- #endregion
- }
- }
-
- // Exemple d'utilisation :
- using System;
-
- namespace PouetDansLeau
- {
- class Class1
- {
- static void Main(string[] args)
- {
- _Console.Write("Coucou : ");
- _Console.WriteLine("pouet !");
- _Console.WriteLine("Test de saisi d'une ligne :");
- string s = _Console.ReadLine();
- _Console.Clear();
- _Console.WriteLine("Vous avez tapé : '{0}'", s);
- _Console.WriteLine("Voilà la console est effacée...");
- _Console.WriteLine("Appuyez sur Entrée pour continuer...");
- _Console.ReadLine();
- }
- }
- }
/************************************************************************************ *
* Classe _Console par Thomas Bétrancourt (K-J158) *
* ********************************************************************************** *
* Source : http://support.microsoft.com/default.aspx?scid=kb%3Bfr%3B319257 *
* ********************************************************************************** *
* Mode d'emploi : *
* - Copier _Console.cs dans le dossier de votre projet *
* - Ajouter _Console.cs à votre projet (Menu Projet, Ajouter un composant existant) *
* - Utiliser _Console à la place de Console (ex: _Console.WriteLine("Coucou");) *
* ********************************************************************************** */
/*
* Pour les DllImport et les StructLayout
*/
using System.Runtime.InteropServices;
namespace System
{
public class _Console
{
#region Structures
[StructLayout(LayoutKind.Sequential)]
struct COORD
{
public short x;
public short y;
}
[StructLayout(LayoutKind.Sequential)]
struct SMALL_RECT
{
public short Left;
public short Top;
public short Right;
public short Bottom;
}
[StructLayout(LayoutKind.Sequential)]
struct CONSOLE_SCREEN_BUFFER_INFO
{
public COORD dwSize;
public COORD dwCursorPosition;
public int wAttributes;
public SMALL_RECT srWindow;
public COORD dwMaximumWindowSize;
}
#endregion
#region Importations
[DllImport("kernel32.dll", EntryPoint="GetStdHandle", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
private static extern int GetStdHandle(int nStdHandle);
[DllImport("kernel32.dll", EntryPoint="FillConsoleOutputCharacter", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
private static extern int FillConsoleOutputCharacter(int hConsoleOutput, byte cCharacter, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten);
[DllImport("kernel32.dll", EntryPoint="GetConsoleScreenBufferInfo", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
private static extern int GetConsoleScreenBufferInfo(int hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
[DllImport("kernel32.dll", EntryPoint="SetConsoleCursorPosition", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
private static extern int SetConsoleCursorPosition(int hConsoleOutput, COORD dwCursorPosition);
#endregion
#region Membres
private static int STD_OUTPUT_HANDLE = -11;
private static byte EMPTY = 32;
private static int hConsoleHandle;
#endregion
#region Méthodes
public static void Write(char c)
{
Console.Write(c);
}
public static void Write(bool b)
{
Console.Write(b);
}
public static void Write(Decimal d)
{
Console.Write(d);
}
public static void Write(Double d)
{
Console.Write(d);
}
public static void Write(Int32 i)
{
Console.Write(i);
}
public static void Write(Int64 i)
{
Console.Write(i);
}
public static void Write(Object o)
{
Console.Write(o);
}
public static void Write(Single s)
{
Console.Write(s);
}
public static void Write(string Format)
{
Console.Write(Format);
}
public static void Write(UInt32 ui)
{
Console.Write(ui);
}
public static void Write(UInt64 ui)
{
Console.Write(ui);
}
public static void Write(string Format, Object o)
{
Console.Write(Format, o);
}
public static void Write(string Format, params Object[] Argv)
{
Console.Write(Format, Argv);
}
public static void Write(char[] buffer, Int32 i1, Int32 i2)
{
Console.Write(buffer, i1, i2);
}
public static void Write(string Format, Object o1, Object o2)
{
Console.Write(Format, o1, o2);
}
public static void Write(string Format, Object o1, Object o2, Object o3)
{
Console.Write(Format, o1, o2, o3);
}
public static void Write(string Format, Object o1, Object o2, Object o3, Object o4)
{
Console.Write(Format, o1, o2, o3, o4);
}
public static void WriteLine()
{
Console.WriteLine();
}
public static void WriteLine(char c)
{
Console.WriteLine(c);
}
public static void WriteLine(bool b)
{
Console.WriteLine(b);
}
public static void WriteLine(Decimal d)
{
Console.WriteLine(d);
}
public static void WriteLine(Double d)
{
Console.WriteLine(d);
}
public static void WriteLine(Int32 i)
{
Console.WriteLine(i);
}
public static void WriteLine(Int64 i)
{
Console.WriteLine(i);
}
public static void WriteLine(Object o)
{
Console.WriteLine(o);
}
public static void WriteLine(Single s)
{
Console.WriteLine(s);
}
public static void WriteLine(string Format)
{
Console.WriteLine(Format);
}
public static void WriteLine(UInt32 ui)
{
Console.WriteLine(ui);
}
public static void WriteLine(UInt64 ui)
{
Console.WriteLine(ui);
}
public static void WriteLine(string Format, Object o)
{
Console.WriteLine(Format, o);
}
public static void WriteLine(string Format, params Object[] Argv)
{
Console.WriteLine(Format, Argv);
}
public static void WriteLine(char[] buffer)
{
Console.WriteLine(buffer);
}
public static void WriteLine(char[] buffer, Int32 i1, Int32 i2)
{
Console.WriteLine(buffer, i1, i2);
}
public static void WriteLine(string Format, Object o1, Object o2)
{
Console.WriteLine(Format, o1, o2);
}
public static void WriteLine(string Format, Object o1, Object o2, Object o3)
{
Console.WriteLine(Format, o1, o2, 03);
}
public static void WriteLine(string Format, Object o1, Object o2, Object o3, Object o4)
{
Console.WriteLine(Format, o1, o2, 03, o4);
}
public static int Read()
{
return Console.Read();
}
public static string ReadLine()
{
return Console.ReadLine();
}
public static void Clear()
{
int hWrittenChars = 0;
hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();
COORD Home;
Home.x = Home.y = 0;
GetConsoleScreenBufferInfo(hConsoleHandle, ref strConsoleInfo);
FillConsoleOutputCharacter(hConsoleHandle, EMPTY, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, ref hWrittenChars);
SetConsoleCursorPosition(hConsoleHandle, Home);
}
#endregion
}
}
// Exemple d'utilisation :
using System;
namespace PouetDansLeau
{
class Class1
{
static void Main(string[] args)
{
_Console.Write("Coucou : ");
_Console.WriteLine("pouet !");
_Console.WriteLine("Test de saisi d'une ligne :");
string s = _Console.ReadLine();
_Console.Clear();
_Console.WriteLine("Vous avez tapé : '{0}'", s);
_Console.WriteLine("Voilà la console est effacée...");
_Console.WriteLine("Appuyez sur Entrée pour continuer...");
_Console.ReadLine();
}
}
}
Conclusion
Faites en bon usage... lol
PS: J'ai du surcharger toutes les fonctions car la class Console est scellée... et donc non héritable... J'avais pas envie de recoder toute la partie affichage.. car la class Console le fait tres bien... l'utilité de la source est vraiment que l'on peut effacer la console, rien de plus :)
Historique
- 01 mars 2006 23:15:37 :
- Quelques rectifications de commentaires de la source
Sources de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | 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 | | | |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|