Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2009, 02:38
Wolfchamane
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 73
Antigüedad: 16 años, 8 meses
Puntos: 1
Parsear y escribir un texto predefinido.

Hola, muy buenos días, tengo un problema con una aplicación (que raro xD).
Tengo que leer un fichero TXT que contiene más o menos esta estructura:
Código:
texto_sin_importancia
texto_sin_importancia
texto_sin_importancia
texto_sin_importancia
1) texto_importante
    texto_importante
    texto_importante
    texto_importante
    texto_importante
2) texto_importante
    texto_importante
    texto_importante
    texto_importante
Y lo que he realizado es la siguiente función, cuya misión es leer de dicho fichero el texto hasta que encuentre el texto "<numero>)", entonces acumular el siguiente texto hasta el siguiente código "<numero>)" en un StringBuffer y despues añadir dicho StringBuffer a una lista.

Mejor les pongo el código:
Código PHP:
public void interpretarResultados(File _fichero){
  if (
_fichero.exists()){
    try{
    
// Variables necesarias
        
BufferedReader br = new BufferedReader(new FileReader(_fichero));
    
String cadena "";
    
StringBuffer cadAux null
    List 
listaTexto = new ArrayList();
    
int i 1;
    
     
// Leo el fichero línea a línea 
     
while ((cadena br.readLine()) != null){
         
// Si encuentro una línea que contenga el código
      
if (cadena.contains(i+") ")){
            
// Si no es el primero, entonces cadAux debe tener contenido,
            // en tal caso lo inserto en la lista
        
if ((cadAux != null)&&(cadAux.toString().equals("") != false))
          
listaTexto.add(cadAux.toString());
            
// En cualquier caso, cadAux es un nuevo StringBuffer al que le añado
            // la cadena actual   
        
cadAux = new StringBuffer();
        
cadAux.append(cadena);
        
i++; //incremento i
      
}
          
// Sino contiene el código, pero cadAux no es null y no esta vacio
          // entonces estoy en el texto importante y lo añado a cadAux
      
else if ((cadAux != null)&&(cadAux.toString().contentEquals("") == false))
        
cadAux.append(cadena);
    }
    
        
// Aqui muestro el texto contenido en cada elemento de la lista
    
for (Iterator j listaTexto.iterator(); j.hasNext(); ){
      
String texto = (String) j.next();
      
System.out.println(texto);
    }
                
     }catch(
IOException a){
    
a.printStackTrace();
     }        
   }
//fi _fichero.exists()


Última edición por Wolfchamane; 26/05/2009 a las 03:53