• Domingo 22 de Diciembre de 2024, 19:12

Autor Tema:  Ejercicio De Agenda Telefonica  (Leído 10347 veces)

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Ejercicio De Agenda Telefonica
« en: Lunes 10 de Diciembre de 2007, 02:38 »
0
Hola a todos, soy nuevo en el flog, disculpen si no me entienden algunas cosas...
Bueno ahora el mangazo,,, les queria pedir ayuda con el seguiente ejercicio, tengo algunos errores y no se porque ocurren, estoy muy mareado  :(, tampoco se como hacer el ID que me pide el ejercicio, al final les agrego el codigo de mi programa.
Un saludo de antemano muchas gracias!

AGENDA:

Se debe realizar el programa de una agenda. Para ello se debe crear la clase Agenda, que poseerá los siguientes atributos:

ATRIBUTO:_______ TIPO: _____ACCESIBILIDAD _____-LECTURA/ESCRITURA

Id ______________int_________ privado____________ solo lectura
Amigo _________ Persona______ "____________________ si
Observaciones ___string ________"____________________ si
Alarma _______ DateTime______ "_____________________ si




La clase Persona


ATRIBUTO_____ ________TIPO____ ACCESIIBILIDAD____ LECTURA/ESCRITURA



nombre _______________string______ privado_______________ si
Apellido _________________"___________ " __________________si
Telefono ________________"___________ " __________________si
Fecha de nacimiento ____ DateTime______ "__________________ si


Los datos de las personas se deben persistir en un archivo llamado ‘agenda.xml’.
Cada vez que se abra se debe el campo observaciones de todos los registros que tengan ‘seteada’ la alarma en esa fecha (fecha actual). Para ello se deberá llamar al método de clase TrerAniversarios.
Dado que el programa requiere de varias tareas, se deberá contar con un menú de opciones como el siguiente:

    * Cargar personas
    * Modificación de datos
    * Eliminar personas
    * Aniversarios
    * Buscar
    * Realizar backup
    * Salir

El menú se debe mostrar en mayúscula y en color (distinto al blanco) la letra que hay que presionar para elegir la opción.
A continuación se describe la función de cada ítem del menú de opciones.

Cargar personas: Permite cargar los datos la primera vez y agregar datos una vez generado el archivo. El ‘Id’, que identifica a cada persona, deberá ser auto numérico. Si el archivo no contiene registros el primero será el 1.

Modificación de datos: Permite al usuario modificar algún campo en particular. El registro a modificar se busca ingresando el nombre y apellido en el archivo, si el registro existe, se permitirá modificar cualquier campo (a excepción de Id), previa confirmación del usuario. Si el registro no existe, se deberá informar adecuadamente.

Eliminar personas: Al ingresar a esta opción se ingresará el nombre, apellido y/o Id. Si el registro existe, se eliminara esa persona del archivo, previa confirmación por parte del usuario. Si el registro no existe, se deberá informar adecuadamente.

Aniversarios: Se mostrara por pantalla todos los datos de las personas que cumplan años en ese día. Para esto no se debe ingresar la fecha, el programa debe tomar la fecha del sistema.

Buscar personas: Se debe mostrar un submenú como el siguiente:
·Buscar por apellido
·Buscar por localidad
Para buscar por apellido se ingresara el dato y, si existe, se mostraran todos los datos de la o las personas que coincidan con el apellido ingresado.
Misma tarea tendrá la opción de búsqueda por localidad.

Realizar backup: Al elegir esta opción se realizara una copia de seguridad del archivo ‘agenda.xml’, la copia de seguridad se llamara ‘agendabackup.xml’

Salir: Termina con la ejecución del programa.

NOTAS

    * Todas las opciones del menú se deben realizar por métodos del objeto miAgenda, que será creado en el Main.
    * Se deberá crear una lista de Agenda para serializar y/o deserializar.
    * Todos los ingresos de datos deben ser claros para el usuario, por ejemplo, ingresar las fechas con formato DD/MM/AAAA.
    * Todas las pantallas deben ser hechas en forma prolija, como por ejemplo mostrar los datos encolumnados y alineados por algún criterio.
    * Utilizar rutinas de control de errores y validación de datos.
    * Cada vez que se realice una carga, modificación o borrado de registros se deberá llamar al método estático GuardarEnDisco.
    * Respetar las nomenclaturas para atributos, métodos, clases, propiedades, etc.
    * Utilizar comentarios documentados y todo aquello que crea necesario para la mejor comprensión del programa.
    * Agregue todo aquello que crea necesario para una buena presentación de las pantallas e interfaz con el usuario.

Código: Text
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Xml;
  6. using System.Xml.Serialization;
  7.  
  8. namespace agenda
  9. {
  10.     class Persona
  11.     {
  12.         #region Atributos
  13.  
  14.         private int _id;
  15.         private string _nombre;
  16.         private string _apellido;
  17.         private string _tel;
  18.         private DateTime _nacimiento;
  19.         private string _local;
  20.  
  21.         #endregion
  22.  
  23.         #region Propiedades
  24.  
  25.         public int Id
  26.         {
  27.             get { return _id; }
  28.         }
  29.  
  30.         public string Nombre
  31.         {
  32.             get { return _nombre; }
  33.             set { _nombre = value; }
  34.         }
  35.  
  36.         public string Apellido
  37.         {
  38.             get { return _apellido; }
  39.             set { _apellido = value; }
  40.         }
  41.  
  42.         public string Tel
  43.         {
  44.             get { return _tel; }
  45.             set { _tel = value; }
  46.         }
  47.  
  48.         public DateTime Nacimineto
  49.         {
  50.             get { return _nacimiento; }
  51.             set { _nacimiento = value; }
  52.         }
  53.  
  54.         public string Local
  55.         {
  56.             get { return _local; }
  57.             set { _local = value; }
  58.         }
  59.  
  60.         #endregion
  61.  
  62.         #region Constructor
  63.  
  64.         public Persona()
  65.         { }
  66.  
  67.         public Persona(string nom, string ape, string tel, DateTime nacimiento, string local)
  68.         {
  69.             _nombre = nom;
  70.             _apellido = ape;
  71.             _tel = tel;
  72.             _nacimiento = nacimiento;
  73.             _local = local;
  74.         }
  75.  
  76.         #endregion
  77.  
  78.     }
  79.  
  80.     [Serializable]
  81.     class Agenda
  82.     {
  83.         #region Atributos
  84.  
  85.         private List<string> _observaciones;
  86.         private List<Persona> _amigo;
  87.         private List<DateTime> _alarma;
  88.         public const string FILE = "c:\\MiAgenda.xml";
  89.  
  90.         #endregion
  91.  
  92.         #region Propiedades
  93.  
  94.         public List<string> Observaciones
  95.         {
  96.             get { return _observaciones; }
  97.             set { _observaciones = value; }
  98.         }
  99.         public List<Persona> Amigo
  100.         {
  101.             get { return _amigo; }
  102.             set { _amigo = value; }
  103.         }
  104.         public List<DateTime> Alarma
  105.         {
  106.             get { return _alarma; }
  107.             set { _alarma = value; }
  108.         }
  109.  
  110.         #endregion
  111.  
  112.         #region Metodos
  113.  
  114.         static public void GuardarEnDisco(Agenda aux)
  115.         {
  116.             XmlTextWriter wr = new XmlTextWriter(FILE, Encoding.UTF8);
  117.             XmlSerializer sr = new XmlSerializer(typeof(Agenda));
  118.             sr.Serialize(wr, aux);
  119.             Console.WriteLine("Guardando datos...");
  120.             Console.ReadKey();
  121.             Console.WriteLine("Datos guardados");
  122.             Console.Read();
  123.  
  124.         }
  125.         public Agenda()
  126.         {
  127.             _observaciones =new List<string>();
  128.             _amigo = new List<Persona>();
  129.             _alarma = new List<DateTime>();
  130.         }
  131.         public void CargarPersonas()
  132.         {
  133.  
  134.             Console.WriteLine("Nombre:");
  135.             string nom = Console.ReadLine();
  136.  
  137.             Console.WriteLine("Apellido:");
  138.             string ape = Console.ReadLine();
  139.  
  140.             Console.WriteLine("Teléfono: ");
  141.             string tel = Console.ReadLine();
  142.  
  143.             Console.WriteLine("Localidad: ");
  144.             string loc = Console.ReadLine();
  145.  
  146.             Console.WriteLine("Ingrese Fecha de nacimiento: \n Año:");
  147.             int año = int.Parse(Console.ReadLine());
  148.             Console.WriteLine("Mes:\n");
  149.             int mes = int.Parse(Console.ReadLine());
  150.             Console.WriteLine("Dia: ");
  151.             int dia = int.Parse(Console.ReadLine());
  152.  
  153.             DateTime fech = new DateTime(año, mes, dia);
  154.  
  155.             Persona auxx = new Persona(nom, ape, tel, fech, loc);
  156.             Amigo.Add(auxx);
  157.  
  158.         }
  159.  
  160.         public void ModificarDatos(Agenda aux)
  161.         {
  162.             GuardarEnDisco(aux);
  163.             string rta = "s";
  164.             while (rta == "s")
  165.             {
  166.  
  167.                 Console.WriteLine("Datos de la persona a buscar:");
  168.                 Console.WriteLine("Nombre:");
  169.                 string auxnom = Console.ReadLine();
  170.                 Console.WriteLine("Apellido:");
  171.                 string auxape = Console.ReadLine();
  172.                
  173.                 int flag = 0;
  174.  
  175.                 foreach (Persona a in Amigo)
  176.                 {
  177.                     if (a.Nombre == auxnom && a.Apellido == auxape)
  178.                     {
  179.                         flag = 1;
  180.                         Console.WriteLine("Ingrese nuevos datos");
  181.                         CargarPersonas();
  182.  
  183.                     }
  184.                 }
  185.                 if (flag == 0)
  186.                 {
  187.                     Console.WriteLine("Persona inexistente");
  188.                     Console.Read();
  189.                 }
  190.                 Console.WriteLine("Modificar otro -> s/n?");
  191.                 rta = Console.ReadLine();
  192.                 while (rta != "s" || rta != "n")
  193.                 {
  194.                     Console.WriteLine("Respuesta no valida\nReingrese");
  195.                     Console.WriteLine("Modificar otro -> s/n?");
  196.                     rta = Console.ReadLine();
  197.                 }
  198.             }
  199.  
  200.  
  201.         }
  202.  
  203.         public void EliminarPersonas(Agenda aux)
  204.         {
  205.             GuardarEnDisco(aux);
  206.             string rta = "s";
  207.             while (rta == "s")
  208.             {
  209.  
  210.                 Console.WriteLine("Datos de la persona a eliminar:");
  211.                 Console.WriteLine("Nombre:");
  212.                 string auxnom = Console.ReadLine();
  213.                 Console.WriteLine("Apellido:");
  214.                 string auxape = Console.ReadLine();
  215.                
  216.                 int flag = 0;
  217.  
  218.                 foreach (Persona a in Amigo)
  219.                 {
  220.                     if (a.Nombre == auxnom && a.Apellido == auxape)
  221.                     {
  222.                         flag = 1;
  223.                         Console.WriteLine("Realmente desea eliminar esta persona?");
  224.                         Console.WriteLine("Nombre:{0}\nApellidp:{0}", auxnom, auxape);
  225.                         Console.WriteLine("s/n?");
  226.                         string op = Console.ReadLine();
  227.  
  228.                         while (op != "s" || op != "n")
  229.                         {
  230.                             Console.WriteLine("Respuesta no valida\nReingrese:");
  231.                             Console.WriteLine("Eliminar ->s/n?");
  232.                             op = Console.ReadLine();
  233.                         }
  234.  
  235.                         if (rta == "s")
  236.                         {
  237.                             Console.WriteLine("Persona Eliminada");
  238.                         }
  239.  
  240.  
  241.                     }
  242.                 }
  243.                 if (flag == 0)
  244.                 {
  245.                     Console.WriteLine("Persona inexistente");
  246.                 }
  247.                 Console.WriteLine("Eliminar otro -> s/n?");
  248.                 rta = Console.ReadLine();
  249.                 while (rta != "s" || rta != "n")
  250.                 {
  251.                     Console.WriteLine("Respuesta no valida\nReingrese");
  252.                     Console.WriteLine("Eliminar otro -> s/n?");
  253.                     rta = Console.ReadLine();
  254.                 }
  255.             }
  256.         }
  257.  
  258.         public void BuscarPersonas()
  259.         {
  260.             Console.WriteLine(" BUSQUEDA DE PERSONAS \n ");
  261.             Console.WriteLine("1-por apellido\n2-por loccalidad");
  262.             int opi = int.Parse(Console.ReadLine());
  263.  
  264.             while (opi != 1 && opi != 2)
  265.             {
  266.                 Console.WriteLine(" ERROR, opcion no valida reingrese\nBUSQUEDA DE PERSONAS \n ");
  267.                 Console.WriteLine("1-por apellido\n2-por loccalidad");
  268.                 opi = int.Parse(Console.ReadLine());
  269.  
  270.             }
  271.  
  272.             int esta = 0;
  273.  
  274.             if (opi == 1)
  275.             {
  276.                 Console.WriteLine(" Ingrese Apellido: \n");
  277.                 string auxape = Console.ReadLine();
  278.  
  279.  
  280.                 foreach (Persona var in _amigo)
  281.                 {
  282.  
  283.                     if (auxape == var.Apellido)
  284.                         Console.WriteLine("ID:{0}\nNombre:{0}\nApellido:{0}\nFecha de nacimiento:{0}\nTelefono:{0}\nLocalidad:{0}", var.Id, var.Nombre, var.Apellido, var.Nombre, var.Tel, var.Local);
  285.                     Console.Read();
  286.                     esta = 1;
  287.  
  288.                 }
  289.             }
  290.             else
  291.             {
  292.                 Console.WriteLine(" Ingrese Localidad: \n");
  293.                 string auxloki = Console.ReadLine();
  294.  
  295.  
  296.                 foreach (Persona var in _amigo)
  297.                 {
  298.  
  299.                     if (auxloki == var.Local)
  300.                         Console.WriteLine("ID:{0}\nNombre:{0}\nApellido:{0}\nFecha de nacimiento:{0}\nTelefono:{0}\nLocalidad:{0}", var.Id, var.Nombre, var.Apellido, var.Nombre, var.Tel, var.Local);
  301.                     Console.Read();
  302.                     esta = 1;
  303.  
  304.                 }
  305.             }
  306.  
  307.             if (esta == 0)
  308.                 Console.WriteLine(" la persona es inexistente");
  309.         }
  310.  
  311.         public void Aniversarios()
  312.         {
  313.             DateTime actual = DateTime.Now;
  314.             int flag = 0;
  315.             foreach (Persona fecha in Amigo)
  316.             {
  317.                 if (fecha.Nacimineto == actual)
  318.                 {
  319.                     flag = 1;
  320.                     Console.WriteLine("FELIZ CUMPLEAÑOS {0}{1}\n", fecha.Nombre, fecha.Apellido);
  321.                     Console.WriteLine("ID:{0}\nNombre:{0}\nApellido:{0}\nFecha de nacimiento:{0}\nTelefono:{0}\nLocalidad:{0}", fecha.Id, fecha.Nombre, fecha.Apellido, fecha.Nombre, fecha.Tel, fecha.Local);
  322.                     Console.Read();
  323.                 }
  324.             }
  325.  
  326.             if (flag == 0)
  327.             {
  328.                 Console.WriteLine("No hay aniversarios");
  329.                 Console.ReadLine();
  330.             }
  331.         }
  332.  
  333.         public void Salir()
  334.         {
  335.             Console.WriteLine("SALIR, ADIOOOOSS!!");
  336.             Console.Read();
  337.         }
  338.         public void DefinirAlarma()
  339.         {
  340.             Console.WriteLine("ingrse fecha de recordatorio");
  341.             Console.WriteLine("Año:");
  342.             int año = int.Parse(Console.ReadLine());
  343.  
  344.             while (año < DateTime.Now.Year)
  345.             {
  346.                 Console.WriteLine("ERROR, REINGRSE año:");
  347.                 año = int.Parse(Console.ReadLine());
  348.             }
  349.  
  350.             Console.WriteLine("Mes:\n");
  351.             int mes = int.Parse(Console.ReadLine());
  352.  
  353.             while (mes < DateTime.Now.Month)
  354.             {
  355.                 Console.WriteLine("REINGRESE Mes:");
  356.                 mes = int.Parse(Console.ReadLine());
  357.  
  358.             }
  359.  
  360.             Console.WriteLine("Dia: ");
  361.             int dia = int.Parse(Console.ReadLine());
  362.             while (dia > 31 && dia < 0)
  363.             {
  364.                 Console.WriteLine("REINGRESE dia:");
  365.                 dia = int.Parse(Console.ReadLine());
  366.             }
  367.             if (mes == DateTime.Now.Month)
  368.                 while (dia < DateTime.Now.Day)
  369.                 {
  370.                     Console.WriteLine("ERROR, no puede ingresar una fecha anterior,,, Reingrse:");
  371.                     dia = int.Parse(Console.ReadLine());
  372.                 }
  373.  
  374.             DateTime fech = new DateTime(año, mes, dia);
  375.  
  376.             Alarma.Add(fech);
  377.             Console.WriteLine("Ingrese observacion");
  378.             string obs = Console.ReadLine();
  379.             Observaciones.Add(obs);
  380.  
  381.  
  382.         }
  383.  
  384.         public void RealizarBackup(Agenda aux)
  385.         {
  386.  
  387.             GuardarEnDisco(aux);
  388.         }
  389.  
  390.         public void Menu()
  391.         {
  392.             Console.Clear();
  393.             Console.BackgroundColor = ConsoleColor.DarkBlue;
  394.             Console.ForegroundColor = ConsoleColor.Gray;
  395.             Console.WriteLine("╔══════════════════════════════════════════════╗");
  396.             Console.WriteLine("║                    MENU                      ║");
  397.             Console.WriteLine("╚══════════════════════════════════════════════╝");
  398.  
  399.  
  400.             Console.ForegroundColor = ConsoleColor.Red;
  401.             Console.Write("C");
  402.             Console.ResetColor();
  403.             Console.WriteLine("argar Personas");
  404.             Console.ForegroundColor = ConsoleColor.Red;
  405.             Console.Write("M");
  406.             Console.ResetColor();
  407.             Console.WriteLine("odificacion de Datos");
  408.             Console.ForegroundColor = ConsoleColor.Red;
  409.             Console.Write("E");
  410.             Console.ResetColor();
  411.             Console.WriteLine("liminar Personas");
  412.             Console.ForegroundColor = ConsoleColor.Red;
  413.             Console.Write("A");
  414.             Console.ResetColor();
  415.             Console.WriteLine("niversarios");
  416.             Console.ForegroundColor = ConsoleColor.Red;
  417.             Console.Write("D");
  418.             Console.ResetColor();
  419.             Console.WriteLine("efinir Alarmas");
  420.             Console.ForegroundColor = ConsoleColor.Red;
  421.             Console.Write("B");
  422.             Console.ResetColor();
  423.             Console.WriteLine("uscar");
  424.             Console.ForegroundColor = ConsoleColor.Red;
  425.             Console.Write("R");
  426.             Console.ResetColor();
  427.             Console.WriteLine("ealizar Backup");
  428.             Console.ForegroundColor = ConsoleColor.Red;
  429.             Console.Write("S");
  430.             Console.ResetColor();
  431.             Console.WriteLine("alir");
  432.             Console.ForegroundColor = ConsoleColor.Red;
  433.             Console.Read();
  434.  
  435.  
  436.  
  437.         }
  438.  
  439.  
  440.         #endregion
  441.  
  442.     }
  443.  
  444.     class Program
  445.     {
  446.         static void Main(string[] args)
  447.         {
  448.  
  449.             Agenda miagenda = new Agenda();
  450.             miagenda.Menu();
  451.  
  452.             string op =Console.ReadLine();
  453.             while (op != "C" && op != "M" && op != "E" && op != "A" && op != "D" && op != "B" && op != "R" && op != "S")
  454.             {
  455.                 Console.Beep(200, 35);
  456.                 Console.WriteLine("ERROR, REINGRESE SU OPCION:");
  457.                 op = Console.ReadLine();
  458.             }
  459.             switch (op)
  460.             {
  461.                 case "C":
  462.                     miagenda.CargarPersonas();
  463.                     break;
  464.                 case "M":
  465.                     miagenda.ModificarDatos(miagenda);
  466.                     break;
  467.                 case "E":
  468.                     miagenda.EliminarPersonas(miagenda);
  469.                     break;
  470.                 case "A":
  471.                     miagenda.Aniversarios();
  472.                     break;
  473.                 case "D":
  474.                     miagenda.DefinirAlarma();
  475.                     break;
  476.                 case "B":
  477.                     miagenda.BuscarPersonas();
  478.                     break;
  479.                 case "R":
  480.                     miagenda.RealizarBackup(miagenda);
  481.                     break;
  482.                 case "S":
  483.                     miagenda.Salir();
  484.                     break;
  485.  
  486.             }
  487.  
  488.         }
  489.  
  490.     }
  491. }
  492.  
  493.  

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ejercicio De Agenda Telefonica
« Respuesta #1 en: Lunes 10 de Diciembre de 2007, 03:50 »
0
Cita de: "FBP"
Hola a todos, soy nuevo en el flog, disculpen si no me entienden algunas cosas...
Bueno ahora el mangazo,,, les queria pedir ayuda con el seguiente ejercicio, tengo algunos errores y no se porque ocurren, estoy muy mareado  :(, tampoco se como hacer el ID que me pide el ejercicio, al final les agrego el codigo de mi programa.
Un saludo de antemano muchas gracias!
concretando...

cuales son los errores? te compila al menos?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #2 en: Lunes 10 de Diciembre de 2007, 15:04 »
0
Compila, pero no me deja seleccionar una opcion del menu, y despues sale del compilador cuando le asigna un ID a una nueva persona   :huh:
Esto me esta mareando por demas.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ejercicio De Agenda Telefonica
« Respuesta #3 en: Lunes 10 de Diciembre de 2007, 15:21 »
0
... hazle debug....
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #4 en: Lunes 10 de Diciembre de 2007, 15:52 »
0
Disculpa mi ignorancia, hace poco estoy en esto de la programacion, pero que es "hacer debug?"  :(

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ejercicio De Agenda Telefonica
« Respuesta #5 en: Lunes 10 de Diciembre de 2007, 16:41 »
0
miercoles!!....

es hacer seguimiento paso a paso sobre tu programa , es decir no mandándolo a ejecutar de una vez sino tu mismo supervisando que hace en cada linea (o en alguna linea de código)... en fin...

http://www.cs.uvm.edu/~upe/resources/debug...alStudioCDebug/
http://msdn2.microsoft.com/es-es/library/k...xtx(VS.90).aspx
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #6 en: Lunes 10 de Diciembre de 2007, 17:57 »
0
Necesitas añadir un ciclo do..while al menu, para que se repita mientras que no lo des la opcion de salir (o sea, "S"):

Al principio (antes de llamar al menu):
Código: Text
  1.  
  2. do {
  3. miagenda.Menu();
  4. string op =Console.ReadLine();
  5.  
  6.  

Al final (despues del switch..case):
Código: Text
  1.  
  2. }while (op != "S");
  3.  
  4.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #7 en: Martes 11 de Diciembre de 2007, 02:19 »
0
Otro problema que tengo es que no se como serializar la clase agenda en un archivo XML, no se si debo serializar toda la clase agenda, o solo las tres listas que tiene las clase agenda(Lista de personas, lista de alarmas, lista de observaciones).
Como puedo hacer para serializar ??

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ejercicio De Agenda Telefonica
« Respuesta #8 en: Martes 11 de Diciembre de 2007, 03:11 »
0
Pues se serializa con serializacion...jjajajaja

para tu caso puntual

System.Xml.Serialization

Anexo jemplo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #9 en: Martes 11 de Diciembre de 2007, 23:17 »
0
hola, les agradezcon un monto por la ayuda que me estan dando, ya avance bastante en el ejercicio. :comp:
Ahora el problema que tengo con la serializacion es que al momento de deserializar me aparece un erroR que me cierra la

consola y no me deja siquiera correr el programa.
Y me dice lo siguiente:

"Error en el documento XML (0, 0)."

Yo creo que el problema esta en que utilizo el deserializador sin haber creado un archivo .xml que deserializar.
Mi idea era hacer un metodo que se fije lo siguiente:

.si no existe un archivo .xml, que cree uno y guarde los datos
.si existe un archivo Xml, que antes de cargar el programa de la agenda telefonica, deserialize el .xml y me cargue todos los

datos de las personas registradas en mi agenda.

Es posible esto? hay manera de saber si existe un archivo xml o si este contiene algo?
O este problema se prodria solucionar de alguna manera menos complicada?

Le adjunto mi ejercicio, la linea de codigo se encuentra comentada en la clase Program.

Muchas Gracias! :hola:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ejercicio De Agenda Telefonica
« Respuesta #10 en: Jueves 13 de Diciembre de 2007, 01:35 »
0
Citar
Es posible esto? hay manera de saber si existe un archivo xml o si este contiene algo?

File.Exists
XMLReader   -   XMLTextReader

Citar
O este problema se prodria solucionar de alguna manera menos complicada?

Sinceramente no es para nada complicado...
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #11 en: Lunes 17 de Diciembre de 2007, 18:15 »
0
Cita de: "JuanK"
miercoles!!....

 
Eso es paciencia, cuando vi el post, ufff, me intimidó, y no pude leerlo...

jajaja...
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

FBP

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Ejercicio De Agenda Telefonica
« Respuesta #12 en: Miércoles 19 de Diciembre de 2007, 23:30 »
0
JuanK! La verdad que te tengo que agradecer demasiado la ayuda que me diste
Gracias a tu ayuda pude terminar de hacer la agenda y tenias razon no es tan dificil como parecia :P . Pero si uno no posee algunos conocimientos, (como p.e que existia un metodo File.Exist(), en la libreria System.IO) complica la creacion del codigo!

Dejo adjuntado mi Agenda telefonica, espero que les guste y acepto toda critica y comentario respecto a ella.

Nuevamente muchas gracias a JuanK y a todos los que pasaron por este post.

Un abrazo

 :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.