Lo tengo casi todo completo, pero hay una cosa que me falla, y no consigo hacerla funcionar.
Uno de los problemas, es que solo puedo insertar un código de cliente con la carga, mientras que podría insertar varios código de cliente igual con diferentes fechas.
El otro, es en el public static void pl_cl, puesto que me tendria que mostrar la carga que sera mas tarde del codigo del cliente insertado, y tampoco se como hacerlo.
Si me pueden ayudar, os lo agradecere mucho, puesto que me va aqui todo el curso.
Gracias
El codigo es:
Código:
package cronus; import java.util.Scanner; import java.io.*; public class Cronus { //Introduce un nuevo registro en el cronus, con una tabulacion de separacion public static void add_Carga(){ String hora, dmes, mes, dia_semana, cliente, cadena; Scanner datos = new Scanner(System.in); int i=0; try{ System.out.println("Introduce el codigo para identificar a el cliente:"); cliente=datos.next(); System.out.println("Introduce la hora de carga (entre las 0 y las 23): "); hora=datos.next(); System.out.println("Introduce el dia del mes cuando se producira la carga(1-31): "); dmes=datos.next(); System.out.println("Introduce el numero de mes (ej. para el mes de enero 01):"); mes=datos.next(); System.out.println("Introduce los dias de la semana (1-6, el 1 es lunes y 6 sabado):"); dia_semana=datos.next(); cadena=cliente+";"+hora+";"+dmes+";"+mes+";"+dia_semana; String array[]=cadena.split(";"); if(existe(cliente)==false){ File f=new File("cronus.txt"); FileWriter w = new FileWriter(f,true); BufferedWriter bw = new BufferedWriter(w); PrintWriter wr = new PrintWriter(bw); wr.println(array[0]+ "\t"+array[1]+"\t"+array[2]+"\t"+array[3]+"\t"+array[4]+"\t"); wr.close(); bw.close(); System.out.println("El cliente con codigo: " + array[0]+ ", cargara a las "+array[1]+" horas el dia "+array[2]+" del mes "+array[3]+" que es "+array[4]+". (*Recuerda, 1 es lunes y 6 es sabado)"); System.out.println("Se ha registrado la carga con los datos introducidos \n\n"); }else{ System.out.println("ATENCION! SE HA PRODUCIDO UN ERROR, YA HAY UN CLIENTE CON ESTE "); } }catch(Exception e){} } //Modifica una entrada a partir del codigo del cliente introducido public static void modificar(String cd_cliente) { try{ boolean chivato=false; FileReader fr=new FileReader("cronus.txt"); BufferedReader reader = new BufferedReader(fr); String array[]; String linea=reader.readLine(); String total=""; String hora, dmes, mes, dia_semana, cadena; Scanner datos = new Scanner(System.in); while(linea!=null){ array=linea.split("\t"); if (array[0].equals(cd_cliente)) { chivato=true; System.out.println("Introduce la hora de carga (entre las 0 y las 23): "); hora=datos.next(); System.out.println("Introduce el dia del mes cuando se producira la carga(1-31): "); dmes=datos.next(); System.out.println("Introduce el numero de mes (ej. para el mes de enero 01):"); mes=datos.next(); System.out.println("Introduce los dias de la semana (1-6, el 1 es lunes y 6 sabado):"); dia_semana=datos.next(); cadena=cd_cliente+";"+hora+";"+dmes+";"+mes+";"+dia_semana; String mod_entrada[]=cadena.split(";"); total=total+ mod_entrada[0]+"\t"+mod_entrada[1]+"\t"+mod_entrada[2]+"\t"+mod_entrada[3]+"\t"+mod_entrada[4]+ System.getProperty("line.separator"); linea=reader.readLine(); }else if (array[0].equals(cd_cliente)==false){ total=total+linea+ System.getProperty("line.separator"); linea=reader.readLine(); } } if(chivato==false) { System.out.println("El codigo del cliente que has insertado, no existe actualmente en nuestra Base de Datos"); }else{ reader.close(); File f=new File("cronus.txt"); FileWriter w = new FileWriter(f,false); BufferedWriter bw = new BufferedWriter(w); PrintWriter wr = new PrintWriter(bw); wr.write(total); wr.close(); bw.close(); System.out.println(total); } }catch(Exception e){} } //Comprueba si existe un cliente en el archivo cronus con el mismo Id public static boolean existe(String cd_cliente) { boolean estado=false; try{ String array[]; FileReader fr=new FileReader("cronus.txt"); BufferedReader reader = new BufferedReader(fr); String linea=reader.readLine(); while(linea!=null) { array=linea.split("\t"); if (array[0].equals(cd_cliente)) { reader.close(); return true; }else{ linea=reader.readLine(); } } reader.close(); }catch(Exception e){} return false; } //Borrara un registro a partir de un codigo de cliente introducido public static void delete(String cd_cliente) { try{ boolean chivato=false; String array[]; String total=""; FileReader fr=new FileReader("cronus.txt"); BufferedReader reader = new BufferedReader(fr); String linea=reader.readLine(); while(linea!=null) { array=linea.split("\t"); if (array[0].equals(cd_cliente)){ chivato=true; linea=reader.readLine(); }else{ total=total+linea+"\n"; linea=reader.readLine(); } } if(chivato=false){ System.out.println("No existen registros para este codigo de cliente"); }else{ reader.close(); File f=new File("cronus.txt"); FileWriter w = new FileWriter(f,false); BufferedWriter bw = new BufferedWriter(w); PrintWriter wr = new PrintWriter(bw); wr.write(total); wr.close(); bw.close(); System.out.println("Se ha eliminado el cliente satisfactoriamente"); } }catch(Exception e){} } //Muestra las cargas de un cliente public static void pl_cl(String cd_cliente) { try{ int i=0; String array[]; FileReader fr=new FileReader("cronus.txt"); BufferedReader reader = new BufferedReader(fr); String linea=reader.readLine(); while(linea!=null){ array=linea.split("\t"); if (array[0].equals(cd_cliente)){ for(i=0;i<array.length;i++){ switch(i){ case 0: System.out.println("Planificación del cliente seleccionado (" + array[i] + ")"); break; case 1: System.out.println("Cargara a las: " + array[i] + " horas" ); break; case 2: System.out.println("El día: " + array[i]); break; case 3: System.out.println("Del mes: " + array[i]); break; case 4: System.out.println("Dia de la setmana (1 equivale a lunes, 2 a martes, ...): " + array[i]); break; default: System.out.println("Error"); break; } } linea=reader.readLine(); }else{ linea=reader.readLine(); } } reader.close(); }catch(Exception e){} } //Cuando sera la proxima carga de el cliente public static void nueva_carga_cliente(String cd_cliente){ try{ int i=0; String array[]; FileReader fr=new FileReader("cronus.txt"); BufferedReader reader = new BufferedReader(fr); String linea=reader.readLine(); while(linea!=null){ array=linea.split("\t"); if (array[0].equals(cd_cliente)){ for(i=0;i<array.length;i++){ switch(i){ case 0: System.out.println("Planificación del cliente seleccionado (" + array[i] + ")"); break; case 1: System.out.println("Cargara a las: " + array[i] + " horas" ); break; case 2: System.out.println("El día: " + array[i]); break; case 3: System.out.println("Del mes: " + array[i]); break; case 4: System.out.println("Dia de la setmana (1 equivale a lunes, 2 a martes, ...): " + array[i]); break; default: System.out.println("Error"); break; } } linea=reader.readLine(); }else{ linea=reader.readLine(); } } reader.close(); }catch(Exception e){} } //Este es el codigo del menu public static void main(String[] args) { Scanner entrada=new Scanner(System.in); String seleccion; String seleccion2; int a=1; do{ System.out.println("Escoge la opción que quieras realizar: "); System.out.println(" 1) Añadir, modificar o borrar registros"); System.out.println(" 2) Consultar registros"); System.out.println(" 3) Salir del programa"); seleccion=entrada.next(); if (seleccion.equals("1")){ System.out.println("Escoge la opción que quieras realizar: "); System.out.println(" 1) Añadir un nuevo registro"); System.out.println(" 2) Modificar un registro ya existente"); System.out.println(" 3) Borrar un registro ya existente"); seleccion=entrada.next(); if(seleccion.equals("1")) add_Carga(); else if (seleccion.equals("2")){ System.out.println("Introduce el codigo del cliente a modificar:"); seleccion=entrada.next(); modificar(seleccion); }else if(seleccion.equals("3")){ System.out.println("Introduce el codigo del cliente a borrar:"); seleccion=entrada.next(); delete(seleccion); } }else if(seleccion.equals("2")){ System.out.println("Escoge la opción que quieras realizar: "); System.out.println(" 1)Proxima hora de carga para el cliente"); System.out.println(" 2)Mostrar plan de carga para el dia..."); System.out.println(" 3)Mostrar plan de carga del cliente..."); seleccion=entrada.next(); if (seleccion.equals("1")){ System.out.println("Introduce el codigo del cliente "); seleccion=entrada.next(); nueva_carga_cliente(seleccion); }else if (seleccion.equals("2")){ System.out.println("Todavia hay que mejorar esta función"); }else if (seleccion.equals("3")){ System.out.println("Introduece el codigo de el cliente: "); seleccion=entrada.next(); pl_cl(seleccion); } }else if(seleccion.equals("3")){ a++; }else{ System.out.println("ENTRADA INCORRECTA."); } }while(a==1); } }