C sharp - Solo aparece una linea del archivo

 
Vista:

Solo aparece una linea del archivo

Publicado por Antoñito Manuel (31 intervenciones) el 26/09/2017 13:54:26
Hola a todos:

Estoy haciendo un programilla ejemplo, que contiene un archivo de texto con varios registros, debe verse un registro por linea, pero deben verse todos. El problema es que aunque funcione, no muestra todos los registros (líneas).

Estoy haciendolo en windows forms, con un textbox en multilinea, solo me aparece el primer registro.

¿Podéis echarme un cable?

Os pongo el código por si ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private void btnLeer_Click(object sender, EventArgs e)
{
    StreamReader lectura;
    string cadena;
    cadena = "";
 
    try
    {
        lectura = File.OpenText("Sueldos.txt");
        //Lectura adelantada para ver si hay contenido
        cadena = lectura.ReadLine();
        //Entonces se implementa para repetir el ciclo
        while(cadena != null)
        {
            //Muestra la cadena, pero solo una
            txtLectura.Text = cadena;
            cadena = lectura.ReadLine();
        }
            cadena = lectura.ReadLine();
 
        lectura.Close();
    }
    catch(FileNotFoundException fe)
    {
        label2.Text = ("¡Error!" + fe.Message);
    }
 
}
 
private void btnSalir_Click(object sender, EventArgs e)
{
    Close();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Enrique
Val: 189
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Solo aparece una linea del archivo

Publicado por Enrique (69 intervenciones) el 26/09/2017 18:21:15
Es porque solo le ordenas que lea una linea para lea todos tus registros deberías poner lo siguiente+
1
2
3
4
5
6
7
8
9
lectura = File.OpenText("Sueldos.txt");
        //Lectura adelantada para ver si hay contenido
        while((cadena = file.ReadLine()) != null)
        {
            //Si dejamos como tu ejemplo solo te mostrara el último registro
            txtLectura.Text += cadena+"\n\r";/*este string es pata que de el salto de linea en el textbox*/
        }
        //Una vez que termine de leer el archivo lo cerramos, esto estaba bien
        lectura.Close();

Esto es algo muy importante de aprender y más si lo estas aprendiendo por que muchos desarrolladores ya con experiencia están queriendo hacer cosas similares. O sea no lo saben hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solo aparece una linea del archivo

Publicado por Antoñito Manuel (31 intervenciones) el 27/09/2017 11:04:09
Hola a todos:

Enrique muy entusiasmado por tu respuesta me puse mano a la obra, pero no resulta lo puesto en while me dice que el nombre File no contiene una definición para ReadLine. Lo cierto es que lo tiene para ReadLines, en caso de iniciar con ello, que no me deja, dice CS1501 Ninguna sobrecarga para el método 'ReadLines' toma 0 argumentos.
Para que funcione debo dejarlo como estaba y aunque le puse el código del string para que el el salto linea en el textbox, actua ignorándolo, como si no tuviese ese código, sólo la primera línea como antes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique
Val: 189
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Solo aparece una linea del archivo

Publicado por Enrique (69 intervenciones) el 30/09/2017 02:23:30
Si estaba algo mal y disculpa las tardanzas me dierón ganas de hacer el programa y acá te o dejo el detalle es que lo hice en consola
no sera muy dificíl pasarlo a win forms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.IO;
 
namespace readFile
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            StreamReader lectura;
            string cadena;
            cadena = "";
 
            try
            {
                lectura = File.OpenText("test.txt");
                while ((cadena = lectura.ReadLine()) != null)
                {
                    Console.WriteLine(cadena);
                }
                lectura.Close();
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("¡Error!" + fe.Message);
            }
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar