Necesito ayuda con un código, agradecería que me ayudasen. C# 2010

Iniciado por Znoxther, 7 Mayo 2013, 21:12 PM

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

Znoxther

Ok, mi código se supone que debería de leer una linea de un archivo .txt, la linea que leyó meterla en una variable, a esa variable aplicarle el .split con el parámetro de '/', y lo resultante guardarlo en un arreglo y posteriormente imprimirlo en una serie de textbox.


se supone que debe leer esto

datos_cliente.txt:

11111/Juan Carlos/Lopez/Perez/gpe. victoria/331/las fuentes/81252/6688131547


Código (csharp) [Seleccionar]
    private void button6_Click(object sender, EventArgs e)
       {
           StreamReader rd = new StreamReader("C:\\datos_cliente.txt");
           string linea;
           bool encontrado = false;
           char[] delimitantes = {'/'};
           linea = rd.ReadLine();

           while (linea != null)
           {
               delimitantes = new char[] {'/'};
               linea = rd.ReadLine();
               string[] cadena = linea.Split(delimitantes);
               if ( cadena[0] == txt_nocliente.Text)
               {
                   txt_nombre.Text = cadena[1];
                   txt_appaterno.Text = cadena[2];
                   txt_apmaterno.Text = cadena[3];
                   txt_calle.Text = cadena[4];
                   txt_num.Text = cadena[5];
                   txt_colonia.Text = cadena[6];
                   txt_codpostal.Text = cadena[7];
                   txt_telefono.Text = cadena[8];
                   encontrado = true;
               }
               else
               {
                   encontrado= false;
               }

           }
               if (encontrado == false)
               {
                   MessageBox.Show("Cliente no encontrado, verifique el numero porfavor");
               }
            rd.Close();
       }


El problema es que me dice que utilice la clave "new" para crear instancia del objeto justo en la linea de
Código (csharp) [Seleccionar]
string[] cadena = linea.Split(delimitantes);

Por favor, si alguien se tomase el tiempo de decirme que esta mal se lo agradecería, es un proyecto de la escuela y no ayo el porque del error :s.
Solo me marca ese error, gracias por su tiempo :).


$Edu$

Dentro de tu codigo elimina esta linea: delimitantes = new char[] {'/'};
esta demas, porque ya declaraste antes. Tendria que andar.

Znoxther

No me funciono amigo :S, pero muchas gracias.

$Edu$

Código (csharp) [Seleccionar]

  private void button6_Click(object sender, EventArgs e)
        {
            StreamReader rd = new StreamReader("C:\\datos_cliente.txt");
            string linea;
            bool encontrado = false;
            linea = rd.ReadLine();

            while (linea != null)
            {
                linea = rd.ReadLine();
                string[] cadena = linea.Split(new Char [] {'/');
                if ( cadena[0] == txt_nocliente.Text)
                {
                    txt_nombre.Text = cadena[1];
                    txt_appaterno.Text = cadena[2];
                    txt_apmaterno.Text = cadena[3];
                    txt_calle.Text = cadena[4];
                    txt_num.Text = cadena[5];
                    txt_colonia.Text = cadena[6];
                    txt_codpostal.Text = cadena[7];
                    txt_telefono.Text = cadena[8];
                    encontrado = true;
                }
                else
                {
                    encontrado= false;
                }

            }
                if (encontrado == false)
                {
                    MessageBox.Show("Cliente no encontrado, verifique el numero porfavor");
                }
             rd.Close();
        }


A ver ahi..

$Edu$

Sigue con error o es que no funciona como tiene que funcionar?

Znoxther

Me arroja el siguiente error

Referencia a objeto no establecida como instancia de un objeto.

Te mandaría una foto pero no se como publicarla aquí xD

$Edu$

Me confundi aca: string[] cadena = linea.Split(new Char [] {'/');

No cerre bien el "{}"

Cambiala por:

string[] cadena = linea.Split(new Char [] {'/'});

Znoxther

Muchisimas gracias, me funciono perfecto, gracias por tu tiempo :D!

$Edu$

De nada, la proxima vez simplemente busca "Split() C#" en google xD

ABDERRAMAH

#9
split("/".tochararray) debería de funcionar también. O incluso split({"/"[0]})