UNIDAD 6: JAVA JSP REGISTROS Y ARCHIVOS DIRECTOS

TEMA 8: EDICION MODIFICACION DE REGISTROS JAVA JSP

Modificar o editar un registro es uno de los procesos mas comunes con archivos en disco, generalmente despues de un fuerte proceso de captura de registros, una revisión o consulta general muestra muchos de ellos con errores de captura.

La primera parte del programa es el programa normal de busqueda que ya se construyo en temas anteriores, pero al desplegar el registro se debera construir una forma dinamica que incluya los datos a modificar del registro.

La segunda parte del programa toma los datos, los almacena en el registro en memoria luego se posiciona en el registro en disco a modificar con seek() y se regraban con write().

Prog31.jsp

<%@ page import="java.io.*" %>
<%
// creando e inicializando los campos del registro
int clave=0;
String nombre="";
int edad=0;
long treg=58;
if(request.getParameter("BUSCAR") != null)
{
// capturando clave de busqueda
int claveb=Integer.parseInt(request.getParameter("CLAVEB"));
// abriendo archivo
try {
File arch=new File("c:\\archivo2.dat");
RandomAccessFile archivo=new RandomAccessFile(arch,"rw");
// moviendo apuntador interno a posicion deseada
archivo.seek(claveb * treg);
// leyendo registro
clave=archivo.readInt();
//leyendo la string 25 caracteres
for(int i = 0; i < 25; ++i)
{ nombre += archivo.readChar(); };
edad=archivo.readInt();
//desplegando en su propia forma y controles dinamicos
if (claveb==clave)
{
out.println("<FORM ACTION=prog31.jsp METHOD=post>");
out.println("CLAVE :"+clave+"<BR>");
out.println("NUEVO NOMBRE:<INPUT TYPE=TEXT NAME=NOMBRE value=\""+nombre+"\"><BR>");
out.println("NUEVA EDAD :<INPUT TYPE=TEXT NAME=EDAD value="+edad+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=EDITAR VALUE=editar><BR>");
out.println("<INPUT TYPE=HIDDEN NAME=CLAVEB value="+claveb+"><BR>");
out.println("</FORM>");
};
// limpiando string
nombre="";
// cerrando archivo
archivo.close();
} catch(FileNotFoundException fnfe) { }
catch (IOException ioe) { }
}; // fin metodo buscar
// codigo de metodo EDICION
String temp2=request.getParameter("EDITAR");
if(temp2==null)temp2=" ";
if(temp2.compareTo("editar")==0)
{
// capturando los nuevos datos
clave=Integer.parseInt(request.getParameter("CLAVEB"));
nombre=request.getParameter("NOMBRE");
edad=Integer.parseInt(request.getParameter("EDAD"));
// procesando la string para que quede de tamano fijo
if (nombre.length() < 25)
{ for(int i=nombre.length(); i <25; i++)
nombre=nombre+" ";}
else{ nombre=nombre.substring(0,25); };
//* abriendo archivo */
try {
File archt=new File("c:\\archivo2.dat");
RandomAccessFile archivot=new RandomAccessFile(archt,"rw");
// posicionando en registro a modificar
archivot.seek(clave * treg);
// regrabando
archivot.writeInt(clave);
archivot.writeChars(nombre);
archivot.writeInt(edad);
// cerrando archivo
archivot.close();
} catch(FileNotFoundException fnfe) { /* Archivo no encontrado */ }
catch (IOException ioe) { /* Error al escribir */ }
// avisando
out.println("REGISTRO EDITADO");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog31.jsp METHOD=post>");
out.println("CLAVE EDITAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar ><BR>");
out.println("</FORM>");
%>

Corrida

image56.jpg

corrida

image57.jpg

corrida

image58.jpg

La unica instrucción nueva en este tema es que se usan dos variables de tipo FILE y RANDOMACCESSFILE una de ellos para controlar la busqueda y la otra para controlar la modificación en disco, asimismo se uso un campo hidden para pasar la información a el submit EDITAR.

TAREAS PROGRAMACION JAVA JSP

CONSTRUIRLES PROGRAMAS DE EDICION O MODIFICACION A LOS ARCHIVOS YA CONSTRUIDOS.

Politica de Privacidad