Example #1
0
    public void actualizar()
    {
        // Crear un fichero temporal.
        string       ficheroTemp = "articulos.tmp";
        CBaseDeDatos ftemp       = new CBaseDeDatos(ficheroTemp);

        // Copiar en el fichero temporal todos los registros del
        // fichero actual que no estén marcados para "borrar"
        CRegistro obj;

        for (int reg_i = 0; reg_i < nregs; reg_i++)
        {
            obj = valorEn(reg_i);
            if (obj.obtenerReferencia().CompareTo("borrar") != 0)
            {
                ftemp.añadir(obj);
            }
        }

        // Cerrar ambos ficheros, copiar el fichero temporal sobre
        // el actual y borrar el fichero temporal
        this.cerrar();      // cerrar el fichero actual
        ftemp.cerrar();     // cerrar el fichero temporal
        File.Copy(ficheroTemp, ficheroActual, true);
        File.Delete(ficheroTemp);
    }
Example #2
0
    public static void Main(string[] args)
    {
        int opción = 0;

        try
        {
            do
            {
                opción = menú();
                switch (opción)
                {
                case 1: // nuevo fichero
                    nuevoFich();
                    break;

                case 2: // abrir fichero
                    abrirFich();
                    break;

                case 3: // añadir registro al final del fichero
                    añadirReg();
                    break;

                case 4: // modificar registro
                    modificarReg();
                    break;

                case 5: // eliminar registro
                    eliminarReg();
                    break;

                case 6: // visualizar registros
                    visualizarRegs();
                    break;

                case 7: // salir
                    if (artículos != null && artículos.tieneRegsEliminados())
                    {
                        artículos.actualizar();
                    }
                    artículos = null;
                    break;
                }
            }while(opción != 7);
        }
        catch (IOException e)
        {
            Console.WriteLine("Error: " + e.Message);
        }
    }
Example #3
0
    public static void nuevoFich()
    {
        if (ficheroAbierto)
        {
            Console.WriteLine("Ya hay un fichero abierto.");
            return;
        }
        Console.Write("Nombre del fichero: ");
        string strFichero = Console.ReadLine(); // nombre del fichero

        while (File.Exists(strFichero))
        {
            Console.WriteLine("Este fichero existe. Escriba otro.");
            strFichero = Console.ReadLine();
        }
        artículos      = new CBaseDeDatos(strFichero);
        ficheroAbierto = true;
    }
Example #4
0
    public static void abrirFich()
    {
        if (ficheroAbierto)
        {
            Console.WriteLine("Ya hay un fichero abierto.");
            return;
        }

        Console.Write("Nombre del fichero: ");
        string strFichero = Console.ReadLine(); // nombre del fichero

        string[] fichero = null;
        char     resp;

        while (!File.Exists(strFichero))
        {
            Console.WriteLine("Este fichero no existe.");
            Console.Write("Desea ver la lista de ficheros? s/n: ");
            resp = (char)Console.Read();
            Console.ReadLine(); // limpiar el buffer de entrada
            if (resp == 'n')
            {
                return;
            }
            // Obtener un listado del directorio actual de trabajo
            fichero = Directory.GetFiles(Directory.GetCurrentDirectory());
            for (int i = 0; i < fichero.Length; i++)
            {
                Console.Write(Path.GetFileName(fichero[i]) + ",  ");
            }
            Console.Write("\n\nNombre del fichero: ");
            strFichero = Console.ReadLine();
        }
        artículos      = new CBaseDeDatos(strFichero);
        ficheroAbierto = true;
    }