Creando una minishiell
Página 1 de 1.
Creando una minishiell
- Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleMiniShell
{
//La clase que representa a los comandos
public class Comando
{
private string cmd; //Cadena que representa el comando
private int idx; //Indice del comando
private string desc; //descripcion del comando
//Constructor para inicializar cada comando
public Comando(string cmd, int id, string dc)
{
this.cmd = cmd;
this.idx = id;
this.desc = dc;
}
//Propiedades para no violar el encapsulamiento
public string Cmd {get {return cmd;}}
public int Idx { get {return idx;}}
public string Dc { get { return desc; } }
}
//La clase que encapsula los comandos
public class ClassInter
{
private Comando[] comandos; //Vector de comandos
private ListadoPersonas lst1; //La lista para ingresar datos
private string com; //La cadena que simula el comando que ingresa el usuario
private int id; //La identidad que nos devuelve cual fue el comando
//El poderoso constructor que nos hace la labor de crear los objetos
//e iniciar nuestra shell de mentiritas.
public ClassInter()
{
//Creamos los comandos
comandos = new Comando[]
{
//Recordermos que Comando es un objeto y se crea como
//tal por cada comando una nueva asignacion en memoria
//La plantilla es: comando,indice del comando, Descripcion del comando
//el indice nos sirve para saber que comando de la lista se escribio
//y luego procesarlo con el switch()
new Comando("add record",1,"Adiciona nuevos registros al sistema."),
new Comando("show record",2,"Muestra todos los registros del sistema."),
new Comando("delete record",3,"Borra o Elimina todos los registros."),
new Comando("help",4,"Ayuda de los comandos."),
new Comando("cls",5,"Limpia la terminal."),
new Comando("quit",6,"Sale del sistema."),
};
//Creamos el objeto lista y tener acceso a sus metodos
lst1 = new ListadoPersonas();
//Este ciclo simula la shell, pero en vez de mostrar un tipico menu
//el usuario digita uno de nuestros comandos e invoca esa accion
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Bienvenidos a mini-Shell con Listas genericas");
Console.WriteLine("Simulando comandos al estilo bash.");
Console.WriteLine("Autor: [G]host.");
Console.WriteLine("Web: www.ghost.activo.mx\n.");
do{
//Jijiji para darle piquete a la shell
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("The Hackers Shell> ");
Console.ForegroundColor = ConsoleColor.Magenta;
com = Console.ReadLine();
id = Indice(com);
switch (id)
{
case 1:
add();
break;
case 2:
show();
break;
case 3:
delete();
break;
case 4:
help();
break;
case 5:
clear();
break;
case 6:
quit();
break;
default:
Console.WriteLine("No se reconoce el comando!.\nEjecute comando help.");
break;
}
}while((id!=6) || (!com.Equals("quit")));
}
//La funcion que nos devuelve cual comando se ingreso
//pero nos devuelve su indice
public int Indice(string cmd)
{
int aux=-1;
//Foreach para recorrer nuestros objetos
foreach (Comando c in this.comandos)
{
if (c.Cmd.Equals(cmd.ToLower()))
{
aux = c.Idx;
break;
}
}
return aux;
}
//Estos metodos simulan la acciones
//Pero realmente invocamos los metodos
//de nuestra clase ListadoPersonas o algo asi jijij
public void add()
{
lst1.Adicionar();
}
public void show()
{
lst1.MostrarTodo();
}
public void delete()
{
lst1.Eliminar();
}
public void quit()
{
Console.WriteLine("Esta saliendo de The Hackers Shell");
Console.ReadKey();
}
public void help()
{
Console.ForegroundColor = ConsoleColor.Yellow;
foreach(Comando c in this.comandos)
{
Console.WriteLine("{0} ---> {1}",c.Cmd,c.Dc);
}
Console.ForegroundColor = ConsoleColor.Magenta;
}
public void clear()
{
Console.Clear();
}
}
}
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|