} // número de registros public bool ponerValorEn(int i, CRegistro objeto) { if (i >= 0 && i <= nregs) { // Los 1 o 2 primeros bytes que escribe Write indican la // longitud de la cadena que escribe a continuación, // información utilizada por ReadString para recuperarla. if (objeto.tamaño() + 2 > tamañoReg) { Console.WriteLine("tamaño del registro excedido"); } else { // Situar el puntero de L/E en el registro i. bw.BaseStream.Seek(i * tamañoReg, SeekOrigin.Begin); // Sobreescribir el registro con la nueva información bw.Write(objeto.obtenerReferencia()); bw.Write(objeto.obtenerPrecio()); return(true); } } else { Console.WriteLine("número de registro fuera de límites"); } return(false); }
public static void visualizarRegs() { int nreg = -1, nregs = artículos.longitud(); if (nregs == 0) { Console.WriteLine("lista vacía"); } Console.Write("conjunto de caracteres a buscar: "); string str = Console.ReadLine(); CRegistro obj = null; do { nreg = artículos.buscar(str, nreg + 1); if (nreg > -1) { obj = artículos.valorEn(nreg); Console.WriteLine("Registro: " + nreg); Console.WriteLine(obj.obtenerReferencia()); Console.WriteLine(obj.obtenerPrecio()); Console.WriteLine(); } }while (nreg != -1); if (obj == null) { Console.WriteLine("no se encontró ningún registro"); } }
public static void modificarReg() { string referencia; double precio; int op, nreg; // Solicitar el número de registro a modificar Console.Write("Número de registro entre 0 y " + (artículos.longitud() - 1) + ": "); nreg = Leer.datoInt(); // Leer el registro CRegistro obj = artículos.valorEn(nreg); if (obj == null) { return; } // Visualizarlo Console.WriteLine(obj.obtenerReferencia()); Console.WriteLine(obj.obtenerPrecio()); // Modificar el registro do { Console.Write("\n\n"); Console.WriteLine("Modificar el dato:"); Console.WriteLine("1. Referencia"); Console.WriteLine("2. Precio"); Console.WriteLine("3. Salir y salvar los cambios"); Console.WriteLine("4. Salir sin salvar los cambios"); Console.WriteLine(); Console.Write(" Opción: "); op = Leer.datoInt(); switch (op) { case 1: // modificar referencia Console.Write("Referencia: "); referencia = Console.ReadLine(); obj.asignarReferencia(referencia); break; case 2: // modificar precio Console.Write("Precio: "); precio = Leer.datoDouble(); obj.asignarPrecio(precio); break; case 3: // guardar los cambios artículos.ponerValorEn(nreg, obj); return; case 4: // salir sin guardar los cambios break; } }while(op != 4); }