Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Choclito

#51
Hola  a todos estaba desarollando y en el transcurso me tope con algo medio raro
tengo un datagridview con menos de 10 columnas,aplico el siguiente codigo y normal mi datatable ya tiene almacenado los datos que habian en el DataGridviewX1

Código (vbnet) [Seleccionar]
Dim dd As New DataTable()
dd = CType(Me.DataGridViewX1.DataSource, DataTable)

 y ahora cuando quiero almacenar mi Otra dataGrivdiew que tiene 36 columnas ahi  me vota Error que dice lo siguiente:
"Referencia a objeto no establecida como instancia de un objeto".
pero que raro digo si mis demas Data normal lo acepta y justo con ese data de ahi tengo el problema.Tiene que ver algo la cantidad de colmunas que tiene ?? y cualquiera ayuda gracias ^^
#52
.NET (C#, VB.NET, ASP) / Re: Problema con Sockets C#
11 Noviembre 2010, 18:10 PM
ola bueno ahi dejo mi granito de arena si ayuda en algo chevre

ServidorPaquete

Código (csharp) [Seleccionar]
private UdpClient cliente;       
   private IPEndPoint puntoRecepcion;
   
   // inicializa las variables y el subproceso para recibir paquetes
   private void ServidorPaquetesForm_Load( object sender, EventArgs e )
   {
      cliente = new UdpClient(50000);
      puntoRecepcion = new IPEndPoint(new IPAddress(0), 0);
      Thread lecturaThread = new Thread(new ThreadStart(EsperarPaquetes));
      lecturaThread.Start();                                   
   }

   // cierra el servidor
   private void ServidorPaquetesForm_FormClosing( object sender,
      FormClosingEventArgs e )
   {         
      System.Environment.Exit( System.Environment.ExitCode );
   } // fin del método ServidorPaquetesForm_FormClosing

   // delegado que permite llamar al método MostrarMensaje
   // en el subproceso que crea y mantiene la GUI
   private delegate void DisplayDelegate( string message ); 

   // el método MostrarMensaje establece la propiedad Text de mostrarTextBox
   // de una manera segura para el proceso
   private void MostrarMensaje( string mensaje )
   {
      // si la modificación de mostrarTextBox no es segura para el subproceso
      if ( mostrarTextBox.InvokeRequired )
      {
         // usa el método heredado Invoke para ejecutar MostrarMensaje
         // a través de un delegado
         Invoke( new DisplayDelegate( MostrarMensaje ),         
            new object[] { mensaje } );                         
      } // fin de if
      else // sí se puede modificar mostrarTextBox en el subproceso actual
         mostrarTextBox.Text += mensaje;
   }

   // espera a que llegue un paquete
   public void EsperarPaquetes()
   {
      while ( true )
      {
         // prepara el paquete
         byte[] datos = cliente.Receive( ref puntoRecepcion );
         MostrarMensaje( "\r\nSe recibió paquete:" +
            "\r\nLongitud: " + datos.Length +
            "\r\nContenido: " +
            System.Text.Encoding.ASCII.GetString( datos ) );           

         // devuelve (eco) la información del paquete de vuelta al cliente
         MostrarMensaje( "\r\n\r\nEnviando de vuelta datos al cliente..." );
         cliente.Send( datos, datos.Length, puntoRecepcion );
         MostrarMensaje( "\r\nPaquete enviado\r\n" );
      } // fin de while
   } 

ClientePaquete

Código (csharp) [Seleccionar]
private UdpClient cliente;       
   private IPEndPoint puntoRecepcion;

   // inicializa las variables y el subproceso para recibir paquetes
   private void ClientePaquetesForm_Load( object sender, EventArgs e )
   {
      puntoRecepcion = new IPEndPoint( new IPAddress( 0 ), 0 );
      cliente = new UdpClient( 50001 );                       
      Thread subproceso =                                       
         new Thread( new ThreadStart( EsperarPaquetes ) );   
      subproceso.Start();                                       
   } // fin del método ClientePaquetesForm_Load

   // cierra el cliente
   private void ClientePaquetesForm_FormClosing( object sender,
      FormClosingEventArgs e )
   {
      System.Environment.Exit( System.Environment.ExitCode );
   } // fin del método ClientePaquetesForm_FormClosing

   // delegado que permite llamar al método MostrarMensaje
   // en el subproceso que crea y mantiene la GUI
   private delegate void DisplayDelegate( string message ); 

   // el método MostrarMensaje establece la propiedad Text de mostrarTextBox
   // de una manera segura para el subproceso
   private void MostrarMensaje( string mensaje )
   {
      // si la modificación de mostrarTextBox no es segura para el subproceso
      if ( mostrarTextBox.InvokeRequired )
      {
         // usa el método heredado Invoke para ejecutar MostrarMensaje
         // a través de un delegado
         Invoke( new DisplayDelegate( MostrarMensaje ),         
            new object[] { mensaje } );                         
      } // fin de if
      else // sí se puede modificar mostrarTextBox en el subproceso actual
         mostrarTextBox.Text += mensaje;
   } // fin del método MostrarMensaje

   // envía un paquete
   private void entradaTextBox_KeyDown( object sender, KeyEventArgs e )
   {
      if ( e.KeyCode == Keys.Enter )
      {
         // crea un paquete (datagrama) como objeto string
         string paquete = entradaTextBox.Text;   
         mostrarTextBox.Text +=
            "\r\nEnviando paquete que contiene: " + paquete;

         // convierte el paquete en arreglo de bytes
         byte[] datos = System.Text.Encoding.ASCII.GetBytes( paquete );

         // envía el paquete al servidor en el puerto 50000               
         cliente.Send( datos, datos.Length, "127.0.0.1", 50000 );
         mostrarTextBox.Text += "\r\nPaquete enviado\r\n";
         entradaTextBox.Clear();
      } // fin de if
   } // fin del método entradaTextBox_KeyDown

   // espera a que lleguen los paquetes
   public void EsperarPaquetes()
   {
      while ( true )
      {
         // recibe arreglo de bytes del servidor
         byte[] datos = cliente.Receive( ref puntoRecepcion );

         // envía el paquete de datos al control TextBox
         MostrarMensaje( "\r\nPaquete recibido:" +
            "\r\nLongitud: " + datos.Length + "\r\nContenido: " +
            System.Text.Encoding.ASCII.GetString( datos ) + "\r\n" );
      } // fin de while
   } // fin del método EsperarPaquetes


#53
.NET (C#, VB.NET, ASP) / uso del datagridview
10 Noviembre 2010, 23:56 PM
hola a todos tengo una duda en visual basic.net no se si me pueden dar ideas para poder realizarlo como hago para que en las columnas del datagridwied su HeaderText  aparezca de la siguiente manera:
o
g
i
d
o
c
taba buscando alguna opcion para poder rotar su texto pero no encuentro , otra solucion que queria dar era buscarme el tipo de letra que tenga ese formato o bien dibujarlo esa letra en las coordenadas de sus cabezales pero abria otra forma mas facil ?, ojala que me haya explicado bien

#54
muchas gracias .. asu too lo ven negocio ahora jiji ..
weno ya lo tengo la aplicacion lista lo que toy haciendo ahora la conexion no mas y en eso toy trabajando ahora y espero lograrlo too se puede ^^,
#55
asha entonces por ejemplo si yo quiero desarrollar un aimbot tengo que usar este inyector tambien
#56
bueno muchas gracias a todo e intentare hacerlo y ya les estare compartiendo los resultado Dx.!
#57
.NET (C#, VB.NET, ASP) / Complicadores
9 Noviembre 2010, 04:17 AM
HOla a todos hace poco hize un analizador Lexico y me dio curiosidad de compartirlo y si tienen alguna mejora mucho mejor podriamoz compartir.
y en el siguiente enlace hize unos videitos sobre los patrones de las variables y/o palabras reservadas: http://www.youtube.com/watch?v=X50-vn-5h0E
bueno si les agrada buen provecho

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace AnalizadorLexico
{
    public partial class Form1 : Form
    {
        int x;//Declaro una Variable Publica para Guardar las Posicones
        //Declaro 3 Arreglos Mas Para Guardar mis Simbolos
        bool Erro = false;
        public static int[] Codigo=new int[61];
        public static string[] Tokens = new string[61];
        public static string[] Simbolo = new string[61];
        public Form1()
        {
            InitializeComponent();
            for (int i = 0; i < Codigo.Length; i++) // Inicializamos los Codigos
                Codigo[i] = i + 1;
            Simbolo[0] = "Procedimiento"; Tokens[0] = "PALABRA RESERVADA - PR";
            Simbolo[1] = "Funcion"; Tokens[1] = "PALABRA RESERVADA - PR";
            Simbolo[2] = "Principal";Tokens[2] = "PALABRA RESERVADA - PR";
            Simbolo[3] = "Entero";Tokens[3] = "PALABRA RESERVADA - PR";
            Simbolo[4] = "Decimal";Tokens[4] = "PALABRA RESERVADA - PR";
            Simbolo[5] = "Doble";Tokens[5] = "PALABRA RESERVADA - PR";
            Simbolo[6] = "Caracter";Tokens[6] = "PALABRA RESERVADA - PR";
            Simbolo[7] = "Cadena";Tokens[7] = "PALABRA RESERVADA - PR";
            Simbolo[8] = "Booleano";Tokens[8] = "PALABRA RESERVADA - PR";
            Simbolo[9] = "Si";Tokens[9] = "PALABRA RESERVADA - PR";
            Simbolo[10] = "Entonces";Tokens[10] = "PALABRA RESERVADA - PR";
            Simbolo[11] = "Sino";Tokens[11] = "PALABRA RESERVADA - PR";
            Simbolo[12] = "Abrir";Tokens[12] = "PALABRA RESERVADA - PR";
            Simbolo[13] = "Caso";Tokens[13] = "PALABRA RESERVADA - PR";
            Simbolo[14] = "Quiebre";Tokens[14] = "PALABRA RESERVADA - PR";
            Simbolo[15] = "Defecto";Tokens[15] = "PALABRA RESERVADA - PR";
            Simbolo[16] = "Ira";Tokens[16] = "PALABRA RESERVADA - PR";
            Simbolo[17] = "Retornar";Tokens[17] = "PALABRA RESERVADA - PR";
            Simbolo[18] = "Para";Tokens[18] = "PALABRA RESERVADA - PR";
            Simbolo[19] = "Mientras";Tokens[19] = "PALABRA RESERVADA - PR";
            Simbolo[20] = "Hacer";Tokens[20] = "PALABRA RESERVADA - PR";
            Simbolo[21] = "Mostrar";Tokens[21] = "PALABRA RESERVADA - PR";
            Simbolo[22] = "Leer";Tokens[22] = "PALABRA RESERVADA - PR";
            Simbolo[23] = "Limpiar";Tokens[23] = "PALABRA RESERVADA - PR";
            Simbolo[24] = "Pausa";Tokens[24] = "PALABRA RESERVADA - PR";
            Simbolo[25] = "Abs";Tokens[25] = "PALABRA RESERVADA - PR";
            Simbolo[26] = "Mod";Tokens[26] = "PALABRA RESERVADA - PR";
            Simbolo[27] = "Exp";Tokens[27] = "PALABRA RESERVADA - PR";
            Simbolo[28] = "Sqrt";Tokens[28] = "PALABRA RESERVADA - PR";
            Simbolo[29] = "(";Tokens[29] = "SIGNO SEPARADOR";
            Simbolo[30] = ")";Tokens[30] = "SIGNO SEPARADOR";
            Simbolo[31] = "{";Tokens[31] = "SIGNO SEPARADOR";
            Simbolo[32] = "}";Tokens[32] = "SIGNO SEPARADOR";
            Simbolo[33] = "[";Tokens[33] = "SIGNO SEPARADOR";
            Simbolo[34] = "]";Tokens[34] = "SIGNO SEPARADOR";
            Simbolo[35] = "+";Tokens[35] = "OPERADOR - OP";
            Simbolo[36] = "-"; Tokens[36] = "OPERADOR - OP";
            Simbolo[37] = "*"; Tokens[37] = "OPERADOR - OP";
            Simbolo[38] = "/"; Tokens[38] = "OPERADOR - OP";
            Simbolo[39] = "&&"; Tokens[39] = "OPERADOR - OP";
            Simbolo[40] = "++"; Tokens[40] = "OPERADOR - OP";
            Simbolo[41] = "--"; Tokens[41] = "OPERADOR - OP";
            Simbolo[42] = "="; Tokens[42] = "SIGNO COMPARADOR - SC";
            Simbolo[43] = "=="; Tokens[43] = "SIGNO COMPARADOR - SC";
            Simbolo[44] = "<="; Tokens[44] = "SIGNO COMPARADOR - SC";
            Simbolo[45] = ">="; Tokens[45] = "SIGNO COMPARADOR - SC";
            Simbolo[46] = "<"; Tokens[46] = "SIGNO COMPARADOR - SC";
            Simbolo[47] = ">"; Tokens[47] = "SIGNO COMPARADOR - SC";
            Simbolo[48] = "!="; Tokens[48] = "SIGNO COMPARADOR - SC";
            Simbolo[49] = "!"; Tokens[49] = "SIGNO RELACIONADOR - SR";
            Simbolo[50] = "&"; Tokens[50] = "SIGNO RELACIONADOR - SR";
            Simbolo[51] = "|"; Tokens[51] = "SIGNO RELACIONADOR - SR";
            Simbolo[52] = ","; Tokens[52] = "SIGNO DE PUNTUACION - SP";
            Simbolo[53] = ";"; Tokens[53] = "SIGNO DE PUNTUACION - SP";
            Simbolo[54] = ":"; Tokens[54] = "SIGNO DE PUNTUACION - SP";
            Simbolo[55] = "\""; Tokens[55] = "SIGNO DE PUNTUACION - SP";
            Simbolo[56] = "'"; Tokens[56] = "SIGNO DE PUNTUACION - SP";
            Simbolo[57] = "."; Tokens[57] = "SIGNO DE PUNTUACION - SP";
            Simbolo[58] = "_"; Tokens[58] = "SIGNO SEPARADOR";
            Simbolo[59] = "FALSE"; Tokens[59] = "Booleano - BO";
            Simbolo[60] = "TRUE"; Tokens[60] = "Booleano - BO";
        }
        private void btnAnalizar_Click(object sender, EventArgs e)
        {
            if (dgvtokens.RowCount > 0) // Limpio Simpre y Cuando Hayga Datos en el DataGridWied
                dgvtokens.Rows.Clear();
            if (dgvErrores.RowCount > 0)
                dgvErrores.Rows.Clear();
            Erro = false;
            richTextBox2.Text = "";
            Analizar(); //LLamo ah mi Procedimiento Analizar
        }
        private void Analizar()
        {           
            char[] Cadena = richTextBox1.Text.ToCharArray();//Separo del Texto Fuente En Caracteres Separados y Almaceno en un Array de tipo Caracter
            string Texto = "";
            int i = 0; //Declaro mi Contador para Poder Recorrer toda la Cadena
            while (i < Cadena.Length)
            {
                if (i < Cadena.Length - 1)
                {
                    //Verificamos con que Letra Empiezza i
                    if (AnalizarLetra(Cadena[i]))
                    {
                        x = i;//Guardamos la Posicion Donde Empieza
                        while (AnalizarNumero(Cadena[i]) || AnalizarLetra(Cadena[i]) || Cadena[i] == '_')//Repetira Mientras Sea un Numero oh una Letra
                        {
                            Texto = Texto + Cadena[i].ToString();
                            i++;
                            if (i == Cadena.Length) break;//Si Llegamos ah la Ultina Posicion Salimos porque ya no hay nada por analizar
                        }
                        //Ver si es una Palabra Reservada oh es un Identificador
                        PR(Texto); //Llamamos ah un Procedimiento Palabra Reservada -PR para Confirmar si es una PR                   
                        Texto = "";
                    }
                    else if (AnalizarNumero(Cadena[i]) || (Cadena[i].ToString() == "-" && AnalizarNumero(Cadena[i + 1])))
                    {
                        x = i;//Guardamos la Posicion Donde Empieza     
                        string Ti = "E";
                        bool SolounPunto = true; //Inicializamos una Variable Aux que nos Va Indicar que la Concadenacion ya Tiene un Punto y no Puede Aceptar mas
                        if (Cadena[i].ToString() == "-") //si es que primero empieza con un -
                        {
                            Texto = Texto + Cadena[i].ToString();
                            i += 1;                           
                        }
                        while (AnalizarNumero(Cadena[i])) //Repetira mientras sea un Numero
                        {
                            Texto = Texto + Cadena[i].ToString();
                            i++;
                            if (i < Cadena.Length - 1) //entrara siempre y cuando no sea el ultimo Caracter del Texto fuente
                            {
                                if (Cadena[i] == '.' && AnalizarNumero(Cadena[i + 1]) && SolounPunto) // Si se Cumple las Reglas Seguimos Cancadenando
                                {
                                    Texto = Texto + Cadena[i].ToString();
                                    SolounPunto = false;
                                    Ti = "D";
                                    i++;
                                }
                            }
                            if (i == Cadena.Length) break;//Si Llegamos ah la Ultina Posicion Salimos porque ya no hay nada por analizar
                        }
                        //Mostrar el Numero 
                        if (Ti == "E") //Si es Entero
                        {
                            dgvtokens.RowCount = dgvtokens.RowCount + 1;
                            dgvtokens[0, dgvtokens.RowCount - 1].Value = "60";
                            dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
                            dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO ENTERO - NE";
                            dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                            Texto = "";
                        }
                        else //Si es Decimal
                        {
                            dgvtokens.RowCount = dgvtokens.RowCount + 1;
                            dgvtokens[0, dgvtokens.RowCount - 1].Value = "61";
                            dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
                            dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO DECIMAL - ND";
                            dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                            Texto = "";
                        }
                    }
                    else if (Cadena[i].ToString() == " " || Cadena[i].ToString() == "\n" || Cadena[i].ToString() == "\t")//si hay un espacio o un enter seguimos avanzando
                        i++;
                    else if (char.IsSymbol(Cadena[i]) || char.IsSeparator(Cadena[i]) || char.IsPunctuation(Cadena[i])) // ahora vemos si son simbolos
                    {
                        x = i;
                        if (i < Cadena.Length - 1)
                        {
                            if (Cadena[i].ToString() == "=" && Cadena[i + 1].ToString() == "=")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "!" && Cadena[i + 1].ToString() == "=")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == ">" && Cadena[i + 1].ToString() == "=")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "<" && Cadena[i + 1].ToString() == "=")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "+" && Cadena[i + 1].ToString() == "+")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "-" && Cadena[i + 1].ToString() == "-")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "&" && Cadena[i + 1].ToString() == "&")
                            {
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                AnalizarSimbolo(Union, x);
                                i = i + 2;
                            }
                            else if (Cadena[i].ToString() == "/" && Cadena[i + 1].ToString() == "/") // Para los Comentarios de Linea
                            {
                                string Union = "";
                                x = i;
                                for (int j = i; j < Cadena.Length; j++)
                                {
                                    if (Cadena[i].ToString() != "\n")
                                    {
                                        Union = Union + Cadena[j];
                                        i += 1;//Incremento mi Contador
                                    }
                                    else
                                    {
                                        i = j;//Intercambio la Posicion Donde Estuvo el Enter
                                        break;
                                    }
                                }
                                dgvtokens.RowCount = dgvtokens.RowCount + 1;
                                dgvtokens[0, dgvtokens.RowCount - 1].Value = "65";
                                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
                                dgvtokens[2, dgvtokens.RowCount - 1].Value = "COMENTARIO DE LINEA - CL";
                                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                            }
                            else if (Cadena[i].ToString() == "/" && Cadena[i + 1].ToString() == "*") // Para los Comentarios de Parrafo
                            {
                                x = i;
                                int flag = -1;
                                //Recorro Toda mi Cadena para Ver si se Encuentra * y el /
                                for (int j = i + 2; j < Cadena.Length; j++)
                                {
                                    if (j + 1 != Cadena.Length)
                                    {
                                        if (Cadena[j].ToString() == "*" && Cadena[j + 1].ToString() == "/")
                                        {
                                            flag = j + 1;
                                            break;
                                        }
                                    }
                                }
                                if (flag > -1)
                                {
                                    i = flag + 1;
                                    dgvtokens.RowCount = dgvtokens.RowCount + 1;
                                    dgvtokens[0, dgvtokens.RowCount - 1].Value = "65";
                                    dgvtokens[1, dgvtokens.RowCount - 1].Value = "/* */";
                                    dgvtokens[2, dgvtokens.RowCount - 1].Value = "COMENTARIO DE PARRAFO - CP";
                                    dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                                }
                                else
                                {
                                    AnalizarSimbolo(Cadena[i].ToString(), x);//Analizo el Simbolo Solo
                                    i = i + 1;
                                }
                            }
                            else if (Cadena[i].ToString() == "\"") //Cada Vez que encuentra una Comilla
                            {
                                int flag = -1;
                                string Union = "";
                                x = i;
                                //Recorrer Toda la Cadena Hasta Ubicar el ""
                                for (int j = i + 1; j < Cadena.Length; j++)
                                {
                                    if (Cadena[j].ToString() == "\"")
                                    {
                                        flag = j;
                                        break;
                                    }
                                    else if (Cadena[j].ToString() == "\n")//oh si llego ah fin de linea y no encontro nada
                                    {
                                        flag = -1;
                                        break;
                                    }
                                }
                                if (flag > -1)
                                {
                                    i = flag + 1;//Actualizamos la Nueva Posicion ah Buscar e Incrementado mas uno
                                    //Un Pequeño Recorrido para Concadenar
                                    for (int k = x; k < i; k++)
                                        Union = Union + Cadena[k];
                                    dgvtokens.RowCount = dgvtokens.RowCount + 1;
                                    dgvtokens[0, dgvtokens.RowCount - 1].Value = "62";
                                    dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
                                    dgvtokens[2, dgvtokens.RowCount - 1].Value = "CADENA - CA";
                                    dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                                }
                                else
                                {
                                    AnalizarSimbolo(Cadena[i].ToString(), x);//Analizo el Simbolo Solo
                                    i = i + 1;
                                }
                            }
                            else if (Cadena[i].ToString() == "'") //Cada Vez que Encuentre una Comilla Simple
                            {
                                x = i;
                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
                                i = i + 2;
                                if (i <= Cadena.Length - 1)
                                {
                                    if (Cadena[i].ToString() == "'") //Si Cumple la Condicion
                                    {
                                        dgvtokens.RowCount = dgvtokens.RowCount + 1;
                                        dgvtokens[0, dgvtokens.RowCount - 1].Value = "63";
                                        dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString() + Cadena[i].ToString();
                                        dgvtokens[2, dgvtokens.RowCount - 1].Value = "CARACTER - CR";
                                        dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
                                        i++;
                                    }
                                    else
                                    {
                                        i = x;
                                        AnalizarSimbolo(Cadena[i].ToString(), x);
                                        i = i + 1;
                                    }
                                }
                                else //Regreso al Principio donde Almaceno mi Puntero
                                {
                                    i = x;
                                    AnalizarSimbolo(Cadena[i].ToString(), x);
                                    i = i + 1;
                                }
                            }
                            else //Si no se Cumple nada de las Condiciones Dada Analizo el Simbolo para Ver si es un Desconocido
                            {
                                AnalizarSimbolo(Cadena[i].ToString(), x);
                                i = i + 1;
                            }
                        }
                        else // Si Solo  Tengo un Simbolo
                        {
                            AnalizarSimbolo(Cadena[i].ToString(), x);
                            i = i + 1;
                        }
                    }
                }
                else //Si solo es una Cadena de Longitud 1
                {
                    x = i;
                    if (AnalizarNumero(Cadena[i]))
                    {
                        Texto = Cadena[i].ToString();
                        dgvtokens.RowCount = dgvtokens.RowCount + 1;
                        dgvtokens[0, dgvtokens.RowCount - 1].Value = "60";
                        dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
                        dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO ENTERO - NE";
                        dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();                       
                    }
                    else if (AnalizarLetra(Cadena[i]))
                    {
                        Texto = Cadena[i].ToString();
                        PR(Texto); //Llamamos ah un Procedimiento Palabra Reservada -PR para Confirmar si es una PR                         
                    }
                    else
                    {
                        AnalizarSimbolo(Cadena[i].ToString(), x);
                    }
                    Texto = "";
                    i++;
                }
               
            }
            richTextBox2.Text = (Erro) ? "Analisis Lexico INCORRECTO" : "Analisis Lexico CORRECTO";
        }

        private void AnalizarSimbolo(string Union, int PosEmpieza)
        {
            int flag = -1;
            int Pos = -1;
            for (int i = 29; i < Simbolo.Length; i++)
            {
                if (Simbolo[i] == Union)
                {
                    flag = 1;
                    Pos = i;
                    break;
                }
            }
            //Verificamos si el Simbolo Pertenece al Lp
            if (flag > -1)
            {
                dgvtokens.RowCount = dgvtokens.RowCount + 1;
                dgvtokens[0, dgvtokens.RowCount - 1].Value = Codigo[Pos];
                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();               
                dgvtokens[2, dgvtokens.RowCount - 1].Value = Tokens[Pos];
                dgvtokens[3, dgvtokens.RowCount - 1].Value = (PosEmpieza + 1).ToString();               
            }
            else
            {
                Erro = true;
                dgvtokens.RowCount = dgvtokens.RowCount + 1;
                dgvtokens[0, dgvtokens.RowCount - 1].Value = "64";
                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
                dgvtokens[2, dgvtokens.RowCount - 1].Value = "SIMBOLO DESCONOCIDO - SD";
                dgvtokens[3, dgvtokens.RowCount - 1].Value = (PosEmpieza + 1).ToString();
                dgvErrores.RowCount = dgvErrores.RowCount + 1;
                dgvErrores[0, dgvErrores.RowCount - 1].Value = "1";
                dgvErrores[1, dgvErrores.RowCount - 1].Value = Union.ToString();               
                dgvErrores[2, dgvErrores.RowCount - 1].Value = (PosEmpieza + 1).ToString();
            }
        }
        private void PR(string Texto)
        {
            int flag = -1;
            int Pos = -1;
            for (int i = 0; i < Simbolo.Length; i++)
            {
                if (Simbolo[i] == Texto)
                {
                    flag = 1;
                    Pos = i;
                    break;
                }
            }
            if (flag > -1) // Confirmamos si es una PR
            {
                dgvtokens.RowCount = dgvtokens.RowCount + 1;
                dgvtokens[0, dgvtokens.RowCount - 1].Value = Codigo[Pos];
                dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
                dgvtokens[2, dgvtokens.RowCount - 1].Value = Tokens[Pos];
                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
            }
            else
            {
                dgvtokens.RowCount = dgvtokens.RowCount + 1;
                dgvtokens[0, dgvtokens.RowCount - 1].Value = "59";
                dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
                dgvtokens[2, dgvtokens.RowCount - 1].Value = "VARIABLE O IDENTIFICADOR - ID";
                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
            }
        }               

        private bool AnalizarNumero(char p)
        {
            bool Estado;
            switch (p.ToString())
            {
                case "0":
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9": Estado = true; break;
                default: Estado = false; break;
            }
            return Estado;
        }

        private bool AnalizarLetra(char p)
        {
            return char.IsLetter(p) ? true : false;
        }
    }
}
#58
Ola a todos taba revisando este tema y vi muy interesante pero lo que quisiera saber un poco mas a profundidad es masomenos de que se trata el tema Dx .
#59
Hola de new mira esta interante tu conexion
crymore.sytes.net eso tu lo configurastes en tu Pc y como haria yo por ejemplo para configurar eso en mi servidor para poderme conectar o solo pido Ip ?
creo que con eso se solucionaria la duda que tengo ..?
#60
ya muchas gracias pero lo que quiero saber es como configurar la conexion ..  lo hago con esta cadena de conexion o tengo que usar otra ..
eso es la gran duda que tengo como tu dices eso es para conexiones locales .. pero para conectarme tendra que usar otro codigo o algo ??
porque hasta donde estaba investigando me dijeron que haga conexiones ODBC
es cierto eso ..?