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

Obtener variables de un fichero

Estas en el tema de Obtener variables de un fichero en el foro de Java en Foros del Web. Que tal, el caso es el siguiente : Con Java escribo un TXT con File, con el siguiente texto res1=32&res2=80&total=104 Esta linea esta compuesta por ...
  #1 (permalink)  
Antiguo 12/07/2005, 10:15
Avatar de Spiritmonger  
Fecha de Ingreso: febrero-2004
Ubicación: Ciudad de México
Mensajes: 44
Antigüedad: 20 años, 2 meses
Puntos: 0
Exclamación Obtener variables de un fichero

Que tal, el caso es el siguiente :

Con Java escribo un TXT con File, con el siguiente texto

res1=32&res2=80&total=104

Esta linea esta compuesta por tres variables concatenadas (res1,res2,total) , tiene este formato porque utilizo el TXT para que Flash lea estas variables

Ahora bien, necesito leer las varibles con Java, cómo puedo acceder a los valores numericos y extraerlos para luego poder procesarlos con una clase
__________________
"Dar cualquier cosa que sea menos que lo mejor de uno mismo es sacrificar el don que han recibido"

Última edición por Spiritmonger; 12/07/2005 a las 10:22 Razón: Correccion de un error
  #2 (permalink)  
Antiguo 12/07/2005, 12:18
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años
Puntos: 1
lees el fichero linea a linea y con la clase StringTokenizer separas en tokens respecto a & y te dara
res1=32
res2=80
total=104

salu2
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #3 (permalink)  
Antiguo 12/07/2005, 19:08
Avatar de Modern_Crusades  
Fecha de Ingreso: junio-2005
Mensajes: 620
Antigüedad: 18 años, 10 meses
Puntos: 1
abstract class sca
{
public static int lineas=0;
public static boolean fin=false;
public static String binario;
public static String[] adet(String tex)
{

String[] tok;
int con=0;
lineas=0;
if(tex.length()<5)
return null;
if((tex.charAt(tex.length()-1)!='\n'))
tex=tex+'\n';
for(int i=0;i<tex.length();i++)
if(tex.charAt(i)=='.')
lineas++;
tok=new String[lineas];
for(int i=0;i<tex.length();i++)
{
if(tex.charAt(i)!='\n')
{
if(tex.charAt(i)!='&')
{
if(tok[con]==null)
tok[con]=""+tex.charAt(i);
else
tok[con]=tok[con]+tex.charAt(i);

}
else
{

con=con+1;


}
}

}

return tok;
}

}
este codigo recibe un string y lo separa en un arrglo dejando en cada linea todo lo que va antes de un & ignorando los espacios.
  #4 (permalink)  
Antiguo 14/07/2005, 15:33
Avatar de Spiritmonger  
Fecha de Ingreso: febrero-2004
Ubicación: Ciudad de México
Mensajes: 44
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo

Ok, excelente, la clase que me resulto tiene mas o menos la logica
Yo use la clase File y los metodos BufferedReader la clase FileReader, readLine, split y substring


public void getResTxt(){
File f = new File("D:\\Encuestas\\txt\\resultado01.txt");
String textoTxt = "";

try {
if (f.canRead()){
System.out.println("El archivo se puede leer");
}
else {
System.out.println("Problema de lectura, checar archivo");
}
}
catch ( SecurityException se){}
// Una vez leido se extrae el contenido

try{
BufferedReader linea = new BufferedReader(new FileReader(f));
textoTxt=linea.readLine();
System.out.println(textoTxt);
linea.close();
}

catch (IOException ioe){}


String [] arr01 = null;

arr01 = textoTxt.split("&");

// Numero de respuestas Si
int pos01 = arr01[0].indexOf("=");
System.out.println(pos01);
System.out.println(arr01[0]);
ValorYesT = arr01[0].substring(pos01+1);
ResYes = Integer.parseInt(ValorYesT);

// Numero de respuestas No
int pos02 = arr01[1].indexOf("=");
System.out.println(pos02);
System.out.println(arr01[1]);
ValorNoT = arr01[1].substring(pos02+1);
ResNo = Integer.parseInt(ValorNoT);

// Numero de respuestas Total
int pos03 = arr01[2].indexOf("=");
System.out.println(pos03);
System.out.println(arr01[2]);
TotalT = arr01[2].substring(pos03+1);
ResTotal = Integer.parseInt(TotalT);

}

Gracias por tu contribucion Modern_Crusades, saludos, también chequé las respuestas a lso mensajes privados
__________________
"Dar cualquier cosa que sea menos que lo mejor de uno mismo es sacrificar el don que han recibido"
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 21:04.