Foro de elhacker.net

Programación => Java => Mensaje iniciado por: anman en 29 Marzo 2008, 08:24 am



Título: Duda con array
Publicado por: anman en 29 Marzo 2008, 08:24 am
Tengo unas carpetas con una serie de fichero en cada una.En ellas hay 2 tipos de ficheros:los que tiene en la posicion 4 del nombre una v o los que tienen una f.
Quiero guardar en un array de bytes las de v y en otro las de f.El problema esque me guarda en la primera posicion el ultimo valor que toma y en las otras 0.¿Alguien me pude decir que estoy haciendo mal?
Código:

public static void dir(File dir, int nivel) throws IOException {

verdaderas = 0;
falsas = 0;
// Indentación según el nivel

String indentacion = "";

for (int i = 0; i < nivel+1; i++) {
    indentacion += " ";
}

// Listamos los ficheros y subdirectorios
File[] lista = dir.listFiles();
V = new byte[lista.length];
F = new byte[lista.length];

for (int i = 0; i < lista.length; i++) {
   
    if (!lista[i].isDirectory()) {

if (lista[i].getName().charAt(4) == 'v') {
V[verdaderas]++;
   
} else {
   F[falsas]++;
}


    } else {
System.out.println("Carpeta :" + lista[i].getName());
num++;//numero de carpetas

dir(lista[i], nivel + 1);

    }
} // end del for
   

System.out.println("La carpeta tiene " + verdaderas
+ " firmas verdaderas y " + falsas + " firmas falsas");

    } // end dir
public static void main(String[] args) throws IOException {


dir(f, 0);//f es el objeto file creado

for (int i = 0; i < num; i++) {
   
    System.out.println(V[i]);

}
System.out.println();
for (int i = 0; i < num; i++) {
    System.out.println(F[i]);

}

    }


Título: Re: Duda con array
Publicado por: anman en 31 Marzo 2008, 11:18 am
Yo creo que me gurda el ultio valor del array solo,porque es un metodo recursivo ¿como lo puedo solucionar?


Título: Re: Duda con array
Publicado por: Lu15_CL4 en 1 Abril 2008, 08:51 am
dices que te guarda solamente en la primera posicion, de cual de los dos arreglos??, en los dos?, no entiendo bien eso pork en ninguna parte veo que le guardes un valor a cualkiera de los arreglos, tienes esto:
Cita de: anman
if (lista.getName().charAt(4) == 'v') {
      V[verdaderas]++;
         
      } else {
         F[falsas]++;
      }
no es asi?
Cita de: anman
if (lista.getName().charAt(4) == 'v') {
                V[verdaderas]="aqui lo que le kieres guardar al arreglo";
      verdaderas++;
         
      } else {
                   F[falsas]="aqui lo que le kieres guardar al arreglo";
         falsas++;
      }
^^, nose muy bien.. no estoy familiarizado con tipos de datos "byte", pero por lo dices parece que es error de logica

en donde usas la variable "indentacion"? o.o


Título: Re: Duda con array
Publicado por: anman en 1 Abril 2008, 12:11 pm
En el arreglo V me guarda el ultimo valor del contador V[verdaderas]++
En el arreglo F me gurda el ultimo valor del contador F[falsas]++.
Lo de la indentacion se puede suprimir.
Al ser un metodo recursivo en cada llamada guarda un valor del contador pero como es un metodo recursivo lo pone a 0 en la siguiente llamada


Título: Re: Duda con array
Publicado por: Lu15_CL4 en 2 Abril 2008, 22:29 pm
Al ser un metodo recursivo en cada llamada guarda un valor del contador pero como es un metodo recursivo lo pone a 0 en la siguiente llamada

ok, ^^, si nomas eso que dices es el problema, ya tienes las variables como globales, inicializalas alla en 0 y las kitas de la funcion, nomas kita la inizialicion de la funcion, esto:

   verdaderas = 0;
   falsas = 0;

quitalo.
:D