You are on page 1of 5

// CLASE PRINCIPAL

import javax.swing.*;
import java.io.*;
public class ARCHIVOS_MENU {

public static void main(String[] args) throws IOException {


int op=0;
String cad="";
INGRESO_LEER_ARCHIVOS le_ar=new INGRESO_LEER_ARCHIVOS();
EMPLEADO p=null,a=null,u=null;
do{ cad=JOptionPane.showInputDialog("\n1.-INGRESO\n2.-VER\n3.-ELIMINACION
FISICA\n4.-SALIR\nELIJA OPCION");
op=Integer.parseInt(cad);
switch(op)
{
case 1:le_ar.ingreso();break;
case 2:le_ar.ver();break;
case 3:le_ar.eliminacion_fisica(p,a,u);
break;
}
}
while(op!=4);

}
}

//CLASE PROCESO ARCHIVOS


import javax.swing.*;
import java.io.*;
class PROCESO_ARCHIVOS {
int ci=0;
String no,esp=" ";
float su;
int estado;
RandomAccessFile arch;

void abrir() throws IOException


{
arch=new RandomAccessFile("d:\\ARCHIVOS\\empleado.dat","rw");
}

String leer_cadena(int n) throws IOException


{ int i=0;
String cad="";
for (i=0;i<n;i++)
{
cad=cad+arch.readChar();
}
return cad;
}
int leer_entero() throws IOException
{ int nu;
nu=arch.readInt();
return nu;
}
float leer_real() throws IOException
{ float re;
re=arch.readFloat();
return re;
}
void grabar(int ci, String no, float su, int estado ) throws IOException
{
arch.writeInt(ci);
arch.writeChars(no);
arch.writeFloat(su);
arch.writeInt(estado);
}
}

// CLASE INGRESO_LEER_ARCHIVOS
import javax.swing.*;
import java.io.*;
class INGRESO_LEER_ARCHIVOS extends PROCESO_ARCHIVOS{
// FUNCION INGRESO
void ingreso() throws IOException
{ abrir();
String inf="";
do
{
ci=Integer.parseInt(JOptionPane.showInputDialog("INGR. CARNET "));
no=JOptionPane.showInputDialog("INGR. NOMBRE");
if (no.length()<20)
{
no=no+esp;
no=no.substring(0,20);
}
else
{
no=no.substring(0,20);
}
su=Float.parseFloat(JOptionPane.showInputDialog("INGR. SUELDO"));
arch.seek(arch.length());
grabar(ci,no,su,1);
inf=JOptionPane.showInputDialog("PARA SALIR ESCRIBA FIN ");
}
while(inf.compareTo("FIN")!=0);
arch.close();
}
// FUNCION VER
void ver() throws IOException
{
int i=0;
long can_reg=0;
String resul="";
abrir();
can_reg=arch.length()/52;
for(i=0;i<can_reg;i++)
{
arch.seek(i*52);
ci=leer_entero();
no=leer_cadena(20);
su=leer_real();
estado=leer_entero();
if (estado==1)
{
resul=resul+"\nCARNET="+ci+"\nNOMBRE="+no+"\nSUELDO="+su+"\
n--------------------------------------\n";
}
}
JOptionPane.showMessageDialog(null,"LISTADO DE EMPLEADOS\n"+resul);
arch.close();
}

//FUNCION ELIMINACION FISICA


void eliminacion_fisica(EMPLEADO p,EMPLEADO a, EMPLEADO u) throws IOException
{ long can_reg=0;
int i=0,op=0;
int car_aux=0;
abrir();
can_reg=arch.length()/52;
for (i=0;i<can_reg;i++)
{
arch.seek(i*52);
ci=leer_entero();
no=leer_cadena(20);
su=leer_real();
estado=leer_entero();
if (p==null)
{ p=new EMPLEADO();
p.ci1=ci;
p.no1=no;
p.su1=su;
p.estado1=estado;
p.pun=null;
}
else
{
u=new EMPLEADO();
u.ci1=ci;
u.no1=no;
u.su1=su;
u.estado1=estado;
u.pun=p;
p=u;
}
} // VACIADO LOS REGISTROS EN LA LISTA
arch.close();
a=p;
u=p;
car_aux=Integer.parseInt(JOptionPane.showInputDialog("INGR. CARNET A ELIMINAR"));
// HACEMOS LA BUSQUE DEL CARNET EN LA LISTA
while(u!=null)
{
if (u.ci1==car_aux)
{
op=Integer.parseInt(JOptionPane.showInputDialog("\nCARNET= "+u.ci1+"\
nNOMBRE= "+u.no1+"\nSUELDO= "+u.su1+"\nESTADO= "+u.estado1+"\nPARA ELIMINAR
PRESIONE 9 "));
if (op==9)
{
if (u==p)
{
p=p.pun;//ELIMINAMOS EL PRIMER NODO
}
else
{
a.pun=u.pun; //ELIMINAMOS UNO DEL MEDIO
}
JOptionPane.showMessageDialog(null,"EL REGISTRO SE ELIMINO");
}
}
a=u;
u=u.pun;
}

File arch1= new File ("C://Archivos/empleado.dat");


// Con File se esta direccionando al directorio donde esta el archivo
arch1.delete();// SE BORRA FISICAMENTE EL ARCHIVO DEL DISCO DURO
//VOLVER A VACIAR LA INFORMACION DE LA LISTA EN EL ARCHIVO
u=p;
abrir();
while(u!=null)
{
grabar(u.ci1,u.no1,u.su1,u.estado1);
u=u.pun;
}
arch.close();
}
}
// CLASE EMPLEADO
class EMPLEADO {
int ci1;
String no1;
float su1;
int estado1;
EMPLEADO pun;
}

You might also like