Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Dividir txt en bloques para guardar en arraylist

Estas en el tema de Dividir txt en bloques para guardar en arraylist en el foro de Java en Foros del Web. Hola gente, como va? Les comento que tengo que hacer un programa para la facultad y la cuestion es que tener que leer un txt ...
  #1 (permalink)  
Antiguo 17/02/2013, 23:42
 
Fecha de Ingreso: octubre-2012
Ubicación: Dolores
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Dividir txt en bloques para guardar en arraylist

Hola gente, como va? Les comento que tengo que hacer un programa para la facultad y la cuestion es que tener que leer un txt en el que hay instrucciones a seguir. Lo que tengo que hacer es que cuando se genere una orden de trabajo (es para una empresa de quimicos) se le asigne al empleado unas instrucciones a seguir.
Lo que se me ocurrio es crear una clase que guarde las instrucciones (numero de instruccion - pasos - ingredietes) y que cuando se le asigne el trabajo, seleccione de un combobox la instruccion que le quiere designar, eso se guarda en una base de datos para que lo vea el operario cuando quiera.
Bueno, el problema que tengo es que pienso guardar las instrucciones en un arraylist de esa misma clase y de ahi, cuando seleccione la instruccion, mande toda la info a la base de datos. La cuestion es que tengo que separar las instrucciones y no se como cortar para que me guarde en un espacio del arraylist la instruccion 1 y en otro espacio la instruccion 2.
Aca les dejo como esta el txt (lo diseñe yo para que sea mas facil leerlo jaja):

Código:
Instruccion 1
Ingredientes:
1 sodio
4 potasio
Pasos:
Paso 1-Sacar
Paso 2-Meter;

Instruccion 2
Ingredientes:
2 sodio
1 potasio
Pasos:
Paso 1-Meter
Paso 2-Sacar;
Espero me puedan ayudar.

Gracias y saludos!!

Última edición por juanc7; 17/02/2013 a las 23:58
  #2 (permalink)  
Antiguo 18/02/2013, 09:49
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Dividir txt en bloques para guardar en arraylist

Pues vas leyendo por líneas y si linea.startsWith("Instruccion"), comienzas un nuevo elemento en el array con, quizás, una nueva clase Instrucción.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 18/02/2013, 17:11
 
Fecha de Ingreso: octubre-2012
Ubicación: Dolores
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dividir txt en bloques para guardar en arraylist

Genial! Muchas gracias, pero ahora como hago para que lea entre dos bloques, osea, suponiendo que hay 3 instrucciones, que lea todo lo de la instruccion 2 sin mostrar la 1 ni la 3?

Muchas gracias y saludos!
  #4 (permalink)  
Antiguo 18/02/2013, 19:07
 
Fecha de Ingreso: octubre-2012
Ubicación: Dolores
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dividir txt en bloques para guardar en arraylist

Bueno gente, ya solucione el problema, por las dudas, si alguien lo necesita, aca les dejo el codigo:

Código Java:
Ver original
  1. ArrayList<String>inst = new ArrayList<String>();
  2.         JTextArea txt = new JTextArea(10, 10);
  3.        
  4.         try {
  5.             Scanner s = new Scanner(System.in);
  6.             System.out.println("Ingrese el numero de instruccion: ");
  7.             int ins = s.nextInt();
  8.            
  9.             File archivo = new File("Instrucciones.txt");
  10.             BufferedReader lectura = new BufferedReader(new FileReader(archivo));
  11.             String linea = null;
  12.             while (lectura.ready()) {
  13.                 linea = lectura.readLine();
  14.                 if (linea.startsWith("Instruccion "+ins)) {
  15.                     do {
  16.                         inst.add(linea);
  17.                         linea = lectura.readLine();
  18.                     } while (!linea.startsWith(";"));
  19.                 }
  20.             }
  21.             for (int i = 0; i < inst.size(); i++) {
  22.                 System.out.println(inst.get(i));
  23.                 txt.append(inst.get(i));
  24.                 txt.append("\n");
  25.             }

Asi ingresando el numero de instruccion, lo busca en txt y agrega el pedazo de texto al jtextarea.

Muchas gracias por la ayuda y saludos!

Etiquetas: bloques, dividir, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.