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

Ayuda, gracias

Estas en el tema de Ayuda, gracias en el foro de Java en Foros del Web. Buenas! Estamos realizando lo que se podía llamar una array de estructuras, lo que pasa es que resulta raro que nos compile correctamente y luego ...
  #1 (permalink)  
Antiguo 22/01/2008, 02:48
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Ayuda, gracias

Buenas! Estamos realizando lo que se podía llamar una array de estructuras, lo que pasa es que resulta raro que nos compile correctamente y luego en la ejecución del programa nos da una excepcion, haber si alguien me podría ayudar, un saludo y muchas gracias.

Adjunto los ficheros:

bis.java
import java.io.*;
public class bis{
public static void main(String[] args) throws IOException {
int opcion;
int tama;
int indice;
BufferedReader teclado= new BufferedReader(new InputStreamReader(System.in));
System.out.println("MENU");
//marco nuevo = new marco();
// nuevo.leerFichero();
System.out.println("________\n");
System.out.println("1. Visualizar contenido completo de una pagina.");
System.out.println("2. Traducir direccion logica.");
System.out.println("3. Mostrar contenido de la tabla de paginas.");
System.out.println("4.Salir");
System.out.print("ELIJA OPCION:");
opcion=Integer.parseInt(teclado.readLine());
switch(opcion){
case 1:
int pagina=0;
System.out.println("Introduzca el numero de pagina a visualizar:");
pagina=Integer.parseInt(teclado.readLine());
}

/*Menu cola = new Menu();*/

String contenido = new String();
bis fichero = new bis();

BufferedReader br = null;
int contador=0;

BufferedReader bufread = new BufferedReader (new FileReader ( "archivo.txt"));
while (bufread.ready()){
contador=contador+1;
while (bufread.ready()){
contador=contador+1;
System.out.println("CONTADOR:"+contador);

char[] lineacaracteres = new char[1024];
tama=bufread.read(lineacaracteres,0,1024);
System.out.println("el valor de los datos capturados es:" +lineacaracteres+"con tamañ"+tama);
// int tamano = 0;
boolean estado=true;
//marco temporal[] = null;
marco temporal[]=new marco[16];

System.out.println("ppepep");

for(indice=0 ; indice <17; indice++){

System.out.println("ola");
temporal[indice].tamano=tama;
System.out.println("pepin");
temporal[indice].estado=estado;
}
// System.out.println("TAMANO:"+temporal[indice].tamano);
}
}
}



marco.java

public class marco {
char contenido[]=new char[1024];
boolean estado=false;
}

Última edición por ernestot87; 22/01/2008 a las 03:10
  #2 (permalink)  
Antiguo 01/02/2008, 09:58
Avatar de GhostGirl  
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda, gracias

Hola!!!

Ayudaría de mucho si pudieras indicar cuál es la excepción que te lanza en tiempo de ejecución ... eso ayuda a ubicar el punto exacto dónde está el problema ...

Que estes bien
Saludos

Bye
  #3 (permalink)  
Antiguo 02/02/2008, 22:52
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Re: Ayuda, gracias

Si funcionara de esta forma sería muy útil.
No funciona así.

Código:
marco temporal[] = new marco[16];
talvez asi ...

Código:
for (int i = 0; i < 16; i++) {
  temporal[i] = new marco();
}
Aparte son solo 16 indices... no 17.
for (indice = 0; indice < 16; indice++) {

y el buffer siempre va a estar ready ...
y nunca va a salir del bucle...

Código:
while (bufread.ready()) {
etc, etc, etc....
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 02:53.