Saludos
Tengo que diseñar un algoritmo para ir recuperando unas cadenas de caracteres de un archivo pedido por el usuario. Un ejemplo del archivo sería:
char nombreVariable;
el codigo que yo tengo lo que hace es que va recorriendo el archivo caracter por caracter y si se encuentra un espacio en blanco o un signo de coma ', ' o de punto y coma ';',quiere decir que ha encontrado una cadena. En el ejemplo que puse las cadenas serian
char, nombreVariable y tambien el ;
Pero para el algoritmo que tengo solo obtiene las cadenas char y nombreVariable. El punto y coma no lo puede imprimir, y no se como cambiar el algoritmo que tengo:
este es el primer ciclo que me tiene que leer caracter por caracter hasta el final de archivo:
while((car = af.read()) != -1)
{
componenteLexico = Clase.leerArchivo(nombreArchivo,af);
System.
out.
print("[" + componenteLexico
+ "]"); }
y este es en el que me concatena los caracteres hasta que se encuentra con el caracter ' ' o ';'.
{
int car;
char c;
long posicion;
StringBuilder sb = new StringBuilder();
try
{
posicion = r.getFilePointer();
r.seek(posicion-1);
while((car = r.read()) != -1 && car != ' ')
{
if(!esSignoPuntuacion(car))
{
c = (char)car;
sb.append(c);
}
}
cadena = sb.toString();
}
{
System.
out.
println("No se pudo abrir archivo"); }
return cadena;
}
public static boolean esSignoPuntuacion(int car)
{
if(car == ',' || car == ';' || car == '.')
return true;
else
return false;
}
gracias