Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: apache_scrc en 15 Septiembre 2010, 16:16 pm



Título: Problema con mensaje por consola
Publicado por: apache_scrc en 15 Septiembre 2010, 16:16 pm
Hola,

estoy generando un validador de estructura XML en C# (por consola) y el problema que tengo es que el mensaje se cierra muy rápido.
La primera vez que ejecute la consola el mensaje lo pude leer ,pero después se empezó a cerrar demasiado rápido la pantalla y no se alcanza a leer nada.

Existe algún comando que controle ese cerrado?

Mi codigo es el siguiente


Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Xml;        // para XmlTextReader y XmlValidatingReader
  5. using System.Xml.Schema; // para XmlSchemaCollection (que se utiliza más adelante)
  6.  
  7. namespace ValidateXml
  8. {
  9.    class Program
  10.    {
  11.        private static bool isValid = true;      // Si se produce un error de validación,
  12.                                                // configure este indicador como false
  13.                                                // en el controlador de eventos de validación.
  14.        static void Main(string[] args)
  15.        {
  16.  
  17.            //XmlTextReader lee un documento XML de un archivo de texto.
  18.            //XmlValidatingReader valida los datos XML.
  19.            XmlTextReader r = new  XmlTextReader("C:\\MiCarpeta\\ProductWithDTD.xml");
  20.            XmlValidatingReader v = new XmlValidatingReader(r);
  21.            v.ValidationType = ValidationType.DTD;
  22.  
  23.            v.ValidationEventHandler += new ValidationEventHandler(MyValidationEventHandler);
  24.  
  25.            // Comprobar si el documento es válido o no.
  26.            if (isValid)
  27.               Console.WriteLine("El documento es válido");
  28.            else
  29.               Console.WriteLine("El documento no es válido");
  30.  
  31.        }
  32.        public static void MyValidationEventHandler(object sender, ValidationEventArgs args)
  33.        {
  34.            isValid = false;
  35.            Console.WriteLine("Evento de validación\n" + args.Message);
  36.        }
  37.  
  38.  
  39.    }
  40. }


Título: Re: Problema con mensaje por consola
Publicado por: Garfield07 en 15 Septiembre 2010, 16:54 pm
Antes de responderte, te ruego uses los indicadores de code GeSHI. Gracias.

Tu problema tiene facil solucion: Se te ha "olvidao" poner algun tipo de pausa, (getchar en C) para que el programa no se cierre. Prueba a ponerle algo asi (veras no domino bien C#), o mejor, a abrirlo desde cmd. Seguro que corre bien.

veras, han habido muchos casos como el tuyo. En C el code seria:
Código
  1. #include <stdio.h>
  2.  
  3. int main ()
  4. {
  5. printf ("Escribe un numero: ");
  6. int a;
  7. scanf ("%d", &a);
  8. printf ("\n\nHas escrito %d.", a);
  9.  
  10. getchar (); //IMPORTANTE PARA WINDOWS
  11.  
  12. return 0;
  13. }
  14.  

Simplemente te comento que es un code facil que toda persona pueda entender. No me infravalores por este sencillo code jaja xD!!!

Saludos y suerte


Título: Re: Problema con mensaje por consola
Publicado por: apache_scrc en 15 Septiembre 2010, 17:15 pm
Tranquilo men, entiendo perfectamente el codigo... el tema que en C#.NET no me reconoce ese comando....

PERO estuve BUSCANDO Y AL FINAL ENCONTRE LA SOLUCION.
DESPUES DEL Console.WriteLine() HAY QUE AGREGAR UN Console.Read() y listo!


Título: Re: Problema con mensaje por consola
Publicado por: Garfield07 en 15 Septiembre 2010, 17:47 pm
Jaja eso era lo que te decia es k como no tengo ni idea de C#, pues te puse el ejemplo en C. Pues si, es lo correcto, fallo mio por indicarte mal. Te confundi en la solucion, no en el problema...

Sorry, y suerte xD. La proxima vez lo indicare mejor jeje


Título: Re: Problema con mensaje por consola
Publicado por: Lunfardo en 16 Septiembre 2010, 01:51 am
ejecuta el programa desde el cmd ^^,   te ahorras esa "pausa"

Ejecutar--> cmd   (usa cd para cambiar de directorio,es mas facil)




bye