• Domingo 22 de Diciembre de 2024, 08:46

Autor Tema:  Crear un XML a partir de un TXT  (Leído 18678 veces)

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Crear un XML a partir de un TXT
« en: Miércoles 30 de Mayo de 2012, 21:33 »
0
Buenas tardes, como proyecto de final de semestre tengo que hacer un programa que genere un .txt sobre polizas de seguro, y luego ese archivo .txt convertirlo a .xml segun un esquema que tenemos pero no tengo idea de como lo puedo hacer :/ estuve buscando y pues no me quedo muy claro, espero puedan ayudarme con esto, se les agradece mucho.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #1 en: Miércoles 30 de Mayo de 2012, 22:21 »
0
@gabio87

cristiantorres

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: sv
  • Bendiciones para todos
    • Ver Perfil
    • Blog dedicado a la programacion
Re:Crear un XML a partir de un TXT
« Respuesta #2 en: Jueves 31 de Mayo de 2012, 00:34 »
0
Hola pues puedes empezar viendo como guardar datos en un archivo txt.
Lo cual explico en unas entradas que cree hace tiempo en mi blog.
http://cristiantorresalfaro.blogspot.com/2012/05/guardar-datos-de-arreglo-en-un-archivo.html
http://cristiantorresalfaro.blogspot.com/2012/05/leer-informacion-de-archivos-txt-desde.html
Visita mi Blog C#, Asp.Net, Python y mas...
Blog Cristian Torres
Foro Codemania

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #3 en: Domingo 3 de Junio de 2012, 03:20 »
0
muchas gracias por su ayuda leere todo y cualquier cosa les comento

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #4 en: Martes 5 de Junio de 2012, 05:43 »
0
pues lei todo pero sin entender como, por que tengo que jalar la info de un .txt como este

Código: HTML
  1. Codigo Producto: 1
  2. Nombre Producto: xmlnator
  3. Codigo Poliza: 123
  4. Numero Poliza: 123456
  5. Vigencia Inicial: 04/06/2012
  6. Vigencia Final: 04/06/2013
  7. Contratante Nombre: Jose Sosa
  8. Contratante Nit: 445697-7
  9. Contratante Dirección: Estanzuela
  10. Dirección de Cobro: colonia banvi
  11. Asegurado Nombre: Roger
  12. Numero:               Nombre de Certificado:               Suma Asegurada:               Marca:               Modelo:               Linea:               Chasis:               Placas:               Cobertura 1:               Cobertura 2:               Cobertura 3:
  13. 000000000001          Naruto                               000000025000                                       000000002012          023                  MZ-232                P-G0KU                accidente                  averia                     jodido      
  14.  

Lo ultimo es una sola linea, pero pues no se como leer y decirle que me cree un elemento "codigo producto" y lo llene con lo que tengo no se si alguien tiene una idea de me pueda ayudar por favor. se los agradecere mucho.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #5 en: Martes 5 de Junio de 2012, 15:50 »
0
Es muy fácil, sin embargo primero tienes que ordenar tus datos, para ello necesitarás obtener los datos de tú archivo TXT ( http://msdn.microsoft.com/es-es/library/db5x7c0d%28v=vs.80%29.aspx ).
 
En el link, podrás aprender como leer cada línea que tengas en tú archivo TXT, una vez que tengas la linea, entonces necesitas saber cual es el caracter que separa el nombre de la propiedad con el valor de la propiedad ejemplo:

Código Producto: 1
--> en este caso Código Producto es el nombre de tú propiedad y el 1 es el valor, por lo tanto como lo veo, los dos puntos(:), separán a cada uno.. entonces.. por cada línea que obtengas de tú TXT, deberías hacer un Split a la variable, indicando que los dos puntos es tú separador ( http://msdn.microsoft.com/es-es/library/ms228388%28v=VS.80%29.aspx ).

Hasta este momento, ya deberias saber como leer el TXT y como analizar toda una linea de texto, entonces sólo te falta aplicar esto: http://mredison.wordpress.com/2008/11/28/como-crear-un-documento-xml-en-c/


y listo! :).... esa es una forma de resolver tú problema, si tienes más dudas puedes preguntar.. saludos!..
@gabio87

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #6 en: Martes 5 de Junio de 2012, 22:57 »
0
Hola otra vez, he leido y probado y pues no me funciona tengo este archivo de texto https://gist.github.com/2877800 y al mostrarlo en el archivo de texto solo me salen los valores de la ultima linea de nada mas, y cuando trato de aplicar el otro ejemplo de split solo me sale la ruta del archivo que estoy usando :/ no se si estoy haciendo algo mal aqui les dejo el codigo por si pueden orientarme un poco disculpen la molestia ya este sbado es la entrega y ps no me llevo nada :/ https://gist.github.com/2877809

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #7 en: Miércoles 6 de Junio de 2012, 06:09 »
0
Oigan no se si esto funcione tengo como una idea que analize el .txt que lea cada linea ya asi por ejemplo linea 1 va a ser codigo:1234 y con esa funcion split o no se si hay otra por que estuve probando y como que no sirve para archivos de texto, pues que me parta esa linea y guardarlo asi variable1=codigo: y variable2=1234 ya que asi podria solo llamar a la variable para rellenar la creada del xml pero no se como hacer eso que les dije no si me pueden orientar o si eso no funciona.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #8 en: Miércoles 6 de Junio de 2012, 15:29 »
0
El Split funciona correctamente, sólo que lo estás aplicando mal y lo puedes hacer de la siguiente manera:

Código: C#
  1.  using (StreamReader sr = new StreamReader("MiArchivo.txt"))
  2.             {
  3.                  char[] delimiterChars = {':'};
  4.                 //Declaro una variable, almacenará línea por línea
  5.                string linea;
  6.                 //Declaro un vector de tipo String, que me servirá para almacenar el resultado del Split.
  7.                string[] vectorLinea;
  8.                 //Entonces, primero obtenemos el valor de la linea (linea = sr.ReadLine) y luego se valida si es diferente de nulo.
  9.                 while ((linea = sr.ReadLine()) != null)
  10.                 {
  11.                      vectorLinea = linea.Split(delimiterChars); //En este momento vectorLinea tiene los 2 Valores.
  12.                 }
  13.             }
  14.  

Espero te sirva saludos! :)
@gabio87

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #9 en: Jueves 7 de Junio de 2012, 09:18 »
0
Oye probe eso pero no me funciona :/ le agregue Console.WriteLine(Vectorlinea); y me de dice system.string[] luego probe vectorlinea[0] y me muestra la ultima linea del documento completa no se que pueda ser esto fue lo que le modifique

Código: C#
  1.  {
  2.             using (StreamReader sr = new StreamReader(@"C:\Users\Familia\Desktop\poliza.txt"))
  3.             {
  4.                 char[] delimiterChars = { ':' };
  5.                 //Declaro una variable, almacenará línea por línea
  6.                 string linea;
  7.                 //Declaro un vector de tipo String, que me servirá para almacenar el resultado del Split.
  8.                 string[] vectorLinea={};
  9.                 //Entonces, primero obtenemos el valor de la linea (linea = sr.ReadLine) y luego se valida si es diferente de nulo.
  10.                 while ((linea = sr.ReadLine()) != null)
  11.                 {
  12.                     vectorLinea = linea.Split(delimiterChars); //En este momento vectorLinea tiene los 2 Valores.
  13.                 }
  14.                 Console.WriteLine(vectorLinea);
  15.                 Console.ReadKey();
  16.             }
  17.         }

Lo que me gustaria es que al llamar vectorlinea[0] me tire lo que esta antes de los puntos y vectorlinea[1] lo q esta despues no se que me falta para eso, ya es para el sabad y no lo logro :/

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #10 en: Jueves 7 de Junio de 2012, 15:33 »
0
Si  fuera tú maestro te tronaría... ya tienes las respuestas, creo que aún no haz entendido la Instrucción while, te recomiendo leas lo siguiente:

http://msdn.microsoft.com/es-es/library/2aeyhxcd.aspx

Utiliza puntos de interrupción, para que ejecutes paso a paso el código.
@gabio87

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #11 en: Jueves 7 de Junio de 2012, 17:55 »
0
Yo lo entiendo pero pues mi maestro no enseña nada, llega a leer el diario, solo nos da temas y que los busquemos donde podamos, y el proyecto deja algo que jama vimos, en ese caso jamas vimos nada de xml ni de manipulación de archivos, pero seguire probando hasta lograrlo

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Crear un XML a partir de un TXT
« Respuesta #12 en: Jueves 7 de Junio de 2012, 20:43 »
0
En los links que te pase, está tú solución, eso sí, tienes que ingeniertelas para obtener el resultado que quieres..

Sin embargo.. la primera parte era leer el TXT, ya lo tienes .. en el While se realiza la inserción de los nodos al xml.. sólo te digo un ejemplo de como se podría realizar.. ahora.. se te puede seguir apoyando.. pero con dudas más específicas.. no tan generales.. como "necesito un código para hacer esto..", espero te sirva..  y saludos!
@gabio87