[Solucionado] Ayuda con Lista Ligada

Iniciado por DaNuK, 17 Octubre 2010, 02:16 AM

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

DaNuK

Saludos a todos compañeros del foro disculpen por la molestia pero es que me he topado con un problema se trata de lo siguiente.
Tengo que crear una lista ligada el cual va recibir los siguientes datos No. Tel, Nombre y Fecha de cumpleaños pero estos datos se encuentran en un archivo de texto plano mi duda es como hago para agregar los datos
la lista lo implemento yo.
si alguien seria tan amable de ayudarme se lo agradecere mucho.
A continuacion pongo el codigo para generar los nodos
Código (csharp) [Seleccionar]

class Nodo
{    
  public string Nombre;  
  public DateTime FeCumple;
  public int Tel;
  public Nodo siguiente;  
  public Nodo(string nom,DateTime cumple,int tel)
   {  
    Nombre=nom;
    FeCumple=cumple;
    Tel=tel;
   }
}

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

[D4N93R]

Hola,

1) No uses campos, usa propiedades.
2) Tienes que hacerlo a mano? porque puedes usar List<T>
3) Tu duda es: Cómo haces para leer un archivo de texto e instanciar los objetos según la data leida?

Saludos!

DaNuK

Si lo tengo que hacer a mano
y mi duda es como agrego los datos que tengo en el archivo a la lista
ejemplo
si tengo estos datos en el archivo como le hago para agregarlo en la lista

jose   125255  12/04/1990

Jesus 215558  14/06/1989

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Lunfardo

sabes lo que es el System.IO ?



deberias leer streams en .net, es fundamental

DaNuK

Si, se  como abrir un archivo pero el problema es como agregar el contenido del archivo a una lista ligada sencilla


<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

[D4N93R]

Iterando la lineas del archivo, y por cada linea creas una lista. Luego guardas esa referencia y en la próxima vuelta del ciclo tienes la nueva linea y la anterior y ahí la ligas.

DaNuK

Serias tan amable de darme un ejemplo por favor si no es muucho pedir

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Lunfardo

#7
te dejo algo rustico que hice a la pasada por que no tengo tiempo,

el ejemplo supone que existe un archivo llamado "ejemplo.txt" en la misma carpeta donde esta el programa, dicho archivo pose 3 palabras (=P, que vago soy) separadas por espacios,todo en una solo renglon.

si te queda alguna duda y nadie hace algo mejor , te hago otro mas elaborado, esto esto es solo para mostrarte como guardar el texto en las variables.

pd: agregar los datos a una lista tambien se te complica?

Código (csharp) [Seleccionar]




using System;
using System.IO;
class ejemplo
{
   static void Main()
   {
       int i=0;
       string a="", j="", k="";
       FileStream streamer;
       string s;
       try
       {
           streamer = new FileStream("ejemplo.txt", FileMode.Open);
       }
       catch (IOException ff)
       {
           Console.WriteLine(ff.Message);
           return;
       }
       StreamReader joya = new StreamReader(streamer);
       try
       {
           s = joya.ReadLine();
           while (s[i] != ' ') { a += s[i]; i++; }
           while(s[i]==' '){i++;}
           while (s[i] != ' ') { j += s[i];i++; }
           while(s[i]==' '){i++;}
            while (i<s.Length ) { k += s[i];i++; }

            Console.WriteLine(a + "      " + k + "      " + j);
           
       }
       catch (IOException ss)
       {
           Console.WriteLine(ss.Message);
       }
       joya.Close();
   }
}




DaNuK

Muchas Gracias compañero me sirvio de mucho

les pongo el codigo por si alguien le sirve
Código (csharp) [Seleccionar]

StreamReader leer = new StreamReader("datos.txt");               
                while (s != null)
                {
                    s = leer.ReadLine();
                    if (s != null)
                    {
                        int i = 0;
                        string a = "", j = "", k = "";
                        while (s[i] != ' ')
                        {
                            a += s[i];
                            i++;
                        }
                        while (s[i] == ' ')
                        {
                            i++;
                        }
                        while (s[i] != ' ')
                        {
                            j += s[i];
                            i++;
                        }
                        while (s[i] == ' ')
                        {
                            i++;
                        }
                        while (i < s.Length)
                        {
                            k += s[i]; i++;
                        }
                        lista.Insertar(a, j, k);
                    }
                }
                leer.Close();
                   


Gracias a todos los que me respondieron

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>