Problema con mensaje por consola

Iniciado por apache_scrc, 15 Septiembre 2010, 16:16 PM

0 Miembros y 1 Visitante están viendo este tema.

apache_scrc

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 (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;        // para XmlTextReader y XmlValidatingReader
using System.Xml.Schema; // para XmlSchemaCollection (que se utiliza más adelante)

namespace ValidateXml
{
   class Program
   {
       private static bool isValid = true;      // Si se produce un error de validación,
                                               // configure este indicador como false
                                               // en el controlador de eventos de validación.
       static void Main(string[] args)
       {
           
           //XmlTextReader lee un documento XML de un archivo de texto.
           //XmlValidatingReader valida los datos XML.
           XmlTextReader r = new  XmlTextReader("C:\\MiCarpeta\\ProductWithDTD.xml");
           XmlValidatingReader v = new XmlValidatingReader(r);
           v.ValidationType = ValidationType.DTD;

           v.ValidationEventHandler += new ValidationEventHandler(MyValidationEventHandler);

           // Comprobar si el documento es válido o no.
           if (isValid)
              Console.WriteLine("El documento es válido");
           else
              Console.WriteLine("El documento no es válido");
           
       }
       public static void MyValidationEventHandler(object sender, ValidationEventArgs args)
       {
           isValid = false;
           Console.WriteLine("Evento de validación\n" + args.Message);
       }


   }
}


Garfield07

#1
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:

#include <stdio.h>

int main ()
{
printf ("Escribe un numero: ");
int a;
scanf ("%d", &a);
printf ("\n\nHas escrito %d.", a);

getchar (); //IMPORTANTE PARA WINDOWS

return 0;
}


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


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

apache_scrc

#2
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!

Garfield07

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


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

Lunfardo

ejecuta el programa desde el cmd ^^,   te ahorras esa "pausa"

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




bye