Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema para hacer split a todas las lineas de un txt c# (solo hace la primera)

Estas en el tema de Problema para hacer split a todas las lineas de un txt c# (solo hace la primera) en el foro de .NET en Foros del Web. Buenas tardes, tengo un archivo archivo de texto que tiene varias lineas asi codigo:1 nombre:francisco entonces el codigo debe partir cada linea en 2 tomando ...
  #1 (permalink)  
Antiguo 07/06/2012, 15:43
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Problema para hacer split a todas las lineas de un txt c# (solo hace la primera)

Buenas tardes, tengo un archivo archivo de texto que tiene varias lineas asi codigo:1 nombre:francisco entonces el codigo debe partir cada linea en 2 tomando el ":" como delimitador, pero solo lo hace con la primera linea lo guarda en un vector y si invoco el 0 me tira codigo si invoco 1 me tira "1" pero si invoco el 2 deberia de mostrarme "nombre" pero no existe y me da error, ya probe pero no se que debo hacer espero me puedan ayudar con esto por favor les dejo el codigo que tengo por si pueden decirme en que me estoy equivocando o que me falta.

Código C#:
Ver original
  1. try
  2.             {
  3.                 string linea;
  4.                 using (StreamReader sr = new StreamReader(@"C:\Users\Familia\Desktop\poliza2.txt"))
  5.                 {
  6.                     while ((linea = sr.ReadLine()) != null)
  7.                     {
  8.                         char[] delimiterChars = {':'};
  9.                         //Declaro una variable, almacenará línea por línea
  10.  
  11.                         //Declaro un vector de tipo String, que me servirá para almacenar el resultado del Split.
  12.                         string[] vectorLinea;
  13.                         //Entonces, primero obtenemos el valor de la linea (linea = sr.ReadLine) y luego se valida si es diferente de nulo.
  14.  
  15.                         {
  16.                             vectorLinea = linea.Split(delimiterChars);
  17.                                 //En este momento vectorLinea tiene los 2 Valores.
  18.                         }
  19.                         Console.WriteLine(vectorLinea[1]);
  20.                         Console.ReadKey();
  21.                     }
  22.                    
  23.                 }
  24.             }catch(Exception e)
  25.             {
  26.                Console.WriteLine("Error");
  27.                 Console.ReadKey();
  28.             }
  #2 (permalink)  
Antiguo 07/06/2012, 17:28
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Que tal rogerfrancisco

Es correcto ya que siempre tu variable vector contiene el nombre de la línea que recorrio, si quieres recorrer todo el archivo y guardar todos los nombres haz algo similar a lo siguiente:

Código c#:
Ver original
  1. try
  2.             {
  3.                 string linea;
  4.                 string[] vectorLinea = null;
  5.                 List<String> Lista= new List<String>();
  6.  
  7.                 using (StreamReader sr = new StreamReader("Ruta"))
  8.                 {
  9.                     while ((linea = sr.ReadLine()) != null)
  10.                     {
  11.                         char[] delimiterChars = { ':' };
  12.                        
  13.                         vectorLinea = linea.Split(delimiterChars);
  14.                         Lista.Add(vectorLinea[1]);
  15.  
  16.                     }
  17.  
  18.                 }
  19.  
  20.             }
  21.             catch (Exception e)
  22.             {
  23.                 Console.WriteLine("Error");
  24.                 Console.ReadKey();
  25.             }

En la variable Lista contendrás todos los nombres del archivo.

Saludos.
__________________
http://ka0stj.wordpress.com/
  #3 (permalink)  
Antiguo 07/06/2012, 21:59
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Jugando un poco logre el siguiente codigo que convierte la sintaxis basica para guardar un xml, pero no se como meter toda la variable que me crea y guardarla como xml me lo crea bien solo como para "incrustarlo" pero no se como y pues el ingeniero no dio un formato especifico para el documento de texto que es este https://gist.github.com/2893512 las ultimas 2 lineas son el problema, la penultima linea estan los titulos y en la ultima linea los valores no se como hacerlo funcionar.

no se si pueden probar el codigo y comprbar a lo que me refiero

Solo me falta como que combinar el titulo de la penultima linea con el valor que tiene debajo en la ultima linea y como exportarlo a xml :/

el codigo es este tiene textbox1 y textbox2 grandes multilinea y button2 y button3

Código C#:
Ver original
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Windows.Forms;
  11. using System.Xml;
  12. using System.Xml.Linq;
  13.  
  14. namespace PruebaXMl
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         protected string UrlArchivo1 = @"C:\Users\Familia\Desktop\poliza.txt";
  19.         public string[] vectorLinea;
  20.         public string NombreArchivo;
  21.  
  22.         public Form1()
  23.         {
  24.             InitializeComponent();
  25.         }
  26.  
  27.  
  28.         private void Button2Click(object sender, EventArgs e)
  29.         {
  30.             FileStream fs = new FileStream(UrlArchivo1, FileMode.Open);
  31.             StreamReader sr = new StreamReader(fs);
  32.             textBox1.Text = sr.ReadToEnd();
  33.             fs.Close();
  34.             sr.Close();
  35.         }
  36.  
  37.         private void Button3Click(object sender, EventArgs e)
  38.         {
  39.             string xml = "";
  40.             foreach (string t in textBox1.Lines)
  41.             {
  42.                 string aux = "";
  43.                 string texto = t;
  44.                 for (int x = 0; x < texto.Length; x++)
  45.                 {
  46.                     if (texto[x] != ':')
  47.                         aux = aux + texto[x];
  48.                     else
  49.                     {
  50.                         xml = xml + "<" + aux + "> " + texto.Substring(x + 1, (texto.Length - x) - 1) + " </" + aux + "> \r\n ";
  51.                         break;
  52.                     }
  53.                 }
  54.                
  55.             }
  56.             textBox2.Text = xml;
  57.         }
  58.     }
  59.        
  60.  
  61.    
  62. }

Última edición por rogerfrancisco; 07/06/2012 a las 22:52 Razón: error codigo
  #4 (permalink)  
Antiguo 08/06/2012, 11:31
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Solamente checa como crear archivos .XML

http://www.csharphelp.com/2006/05/cr...cument-with-c/

Saludos.
__________________
http://ka0stj.wordpress.com/
  #5 (permalink)  
Antiguo 08/06/2012, 15:48
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Pues crear el documento lo crea pero tengo que meter toda la variable xml con el Loadxml() no se como seleccionar los datos que yo quiero de esa variable a discresion
  #6 (permalink)  
Antiguo 08/06/2012, 16:14
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Te refieres a crear la estructura del XML? nodos? elementos? etc?
__________________
http://ka0stj.wordpress.com/
  #7 (permalink)  
Antiguo 08/06/2012, 16:20
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Basicamente si, como con la variable que tengo voy jalando los elementos que necesito para ir llenando todo eso
  #8 (permalink)  
Antiguo 08/06/2012, 16:36
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Para que necesitas esa variable? cuando estas haciendo el recorrido con el ciclo puedes ir creando la estructura del XML.
__________________
http://ka0stj.wordpress.com/
  #9 (permalink)  
Antiguo 08/06/2012, 16:49
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Ummm y eso como se hace, disculpa mi ignorancia con esto llegue al limite de lo que se sobre programación todavia soy muy novato en esto.
  #10 (permalink)  
Antiguo 08/06/2012, 17:31
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Podrias hacer algo como lo siguiente:

Código c#:
Ver original
  1. string xml = "";
  2.             XDocument Documento = new XDocument();
  3.  
  4.             foreach (string t in textBox1.Lines)
  5.             {
  6.                 string aux = "";
  7.                 string texto = t;
  8.                 for (int x = 0; x < texto.Length; x++)
  9.                 {
  10.                     if (texto[x] != ':')
  11.                         aux = aux + texto[x];
  12.                     else
  13.                     {
  14.  
  15.                         xml = xml + "<" + aux + "> " + texto.Substring(x + 1, (texto.Length - x) - 1) + " </" + aux + "> \r\n ";
  16.  
  17.                         Documento = new XDocument(
  18.                         new XDeclaration("1.0", "utf-8", "yes"),
  19.                         new XComment("Lista de Personas"),
  20.                         new XElement("Personas",
  21.                                             new XElement("Numero",
  22.                                                 new XAttribute("Id", "05231104"),
  23.                                                 new XElement("Nombre", "Edison García"))
  24.                                )
  25.                         );
  26.  
  27.                         break;
  28.  
  29.                     }
  30.  
  31.                      
  32.  
  33.                 }
  34.  
  35.             }
  36.             textBox2.Text = xml;
  37.  
  38.             Documento.Save("Ruta");
__________________
http://ka0stj.wordpress.com/
  #11 (permalink)  
Antiguo 08/06/2012, 17:55
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Pero es que lo tengo que llenar con datos que leo de un xml es ahi donde no se que hacer lo que me estas dando es para que yo llene los datos y yo tengo que leer un txt guardar y de ahi crear que es lo que me tiene confundido
  #12 (permalink)  
Antiguo 08/06/2012, 18:06
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

Es lo que inicialmente planteaste, por eso te lo comenté asi.
__________________
http://ka0stj.wordpress.com/
  #13 (permalink)  
Antiguo 08/06/2012, 18:21
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema para hacer split a todas las lineas de un txt c# (solo hace la pr

pero pues esto
Código XML:
Ver original
  1. new XComment("Lista de Personas"),
  2.                         new XElement("Personas",
  3.                                             new XElement("Numero",
  4.                                                 new XAttribute("Id", "05231104"),
  5.                                                 new XElement("Nombre", "Edison García"))

es lo que me confunde por que hayo como rellenar eso con la variable xml que tengo y tengo un conflicto con las ultimas 2 lineas de mi archivo por que son tabuladas y no las crea bien

Etiquetas: lineas, split, todas, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:47.