Пример #1
0
    public static void actualizar(string fActual)
    {
        // Crear un fichero temporal
        string      ficheroTemp = "listatfnos.tmp";
        CListaTfnos ftemp       = new CListaTfnos(ficheroTemp);
        int         nregs       = listatfnos.númeroDeRegs();
        // Copiar en el fichero temporal todos los registros del
        // fichero actual que en su campo teléfono no tengan un 0
        CPersona obj;

        for (int reg_i = 0; reg_i < nregs; reg_i++)
        {
            obj = listatfnos.leerReg(reg_i);
            if (obj.obtenerTeléfono() != 0)
            {
                ftemp.añadirReg(obj);
            }
        }
        listatfnos.cerrarFichero();
        ftemp.cerrarFichero();
        File.Copy(ficheroTemp, fActual, true);
        File.Delete(ficheroTemp);
    }
Пример #2
0
    public static void Main(string[] args)
    {
        int      opción = 0, pos = -1;
        string   cadenabuscar = null;
        string   nombre, dirección;
        long     teléfono;
        bool     eliminado  = false;
        bool     modificado = false;
        CPersona obj;

        try
        {
            // Crear un objeto lista de teléfonos vacío (con 0 elementos)
            // o con el contenido del fichero listatfnos.dat si existe.
            string fichero = "listatfnos.dat";
            listatfnos = new CListaTfnos(fichero);

            do
            {
                opción = menú();
                switch (opción)
                {
                case 1: // buscar
                    Console.Write("conjunto de caracteres a buscar ");
                    cadenabuscar = Console.ReadLine();
                    pos          = listatfnos.buscarReg(cadenabuscar, 0);
                    if (pos == -1)
                    {
                        if (listatfnos.númeroDeRegs() != 0)
                        {
                            Console.WriteLine("búsqueda fallida");
                        }
                        else
                        {
                            Console.WriteLine("lista vacía");
                        }
                    }
                    else
                    {
                        obj = listatfnos.leerReg(pos);
                        Console.WriteLine("Número de registro: " + pos);
                        Console.WriteLine(obj.obtenerNombre());
                        Console.WriteLine(obj.obtenerDirección());
                        Console.WriteLine(obj.obtenerTeléfono());
                    }
                    break;

                case 2: // buscar siguiente
                    pos = listatfnos.buscarReg(cadenabuscar, pos + 1);
                    if (pos == -1)
                    {
                        if (listatfnos.númeroDeRegs() != 0)
                        {
                            Console.WriteLine("búsqueda fallida");
                        }
                        else
                        {
                            Console.WriteLine("lista vacía");
                        }
                    }
                    else
                    {
                        obj = listatfnos.leerReg(pos);
                        Console.WriteLine("Número de registro: " + pos);
                        Console.WriteLine(obj.obtenerNombre());
                        Console.WriteLine(obj.obtenerDirección());
                        Console.WriteLine(obj.obtenerTeléfono());
                    }
                    break;

                case 3: // modificar
                    // Solicitar el número de registro a modificar
                    Console.Write("número de registro entre 0 y " +
                                  (listatfnos.númeroDeRegs() - 1) + ": ");
                    pos        = Leer.datoInt();
                    modificado = modificar(pos);
                    if (modificado)
                    {
                        Console.WriteLine("modificación realizada con éxito");
                    }
                    else
                    {
                        Console.WriteLine("error: no se modificó el registro");
                    }
                    break;

                case 4: // añadir
                    Console.Write("nombre:    "); nombre    = Console.ReadLine();
                    Console.Write("dirección: "); dirección = Console.ReadLine();
                    Console.Write("teléfono:  "); teléfono  = Leer.datoLong();
                    listatfnos.añadirReg(new CPersona(nombre, dirección, teléfono));
                    break;

                case 5: // eliminar
                    Console.Write("teléfono: "); teléfono = Leer.datoLong();
                    eliminado = listatfnos.eliminarReg(teléfono);
                    if (eliminado)
                    {
                        Console.WriteLine("registro eliminado");
                    }
                    else
                    if (listatfnos.númeroDeRegs() != 0)
                    {
                        Console.WriteLine("teléfono no encontrado");
                    }
                    else
                    {
                        Console.WriteLine("lista vacía");
                    }
                    break;

                case 6: // imprimir
                    imprimirListaTfnos();
                    break;

                case 7: // salir
                    // guardar lista
                    if (listatfnos.tieneRegsEliminados())
                    {
                        actualizar(fichero);
                    }
                    listatfnos = null;
                    break;
                }
            }while(opción != 7);
        }
        catch (IOException e)
        {
            Console.WriteLine("Error: " + e.Message);
        }
    }