Convertion C => java

Bonjour,
Voila, comme le dit mon titre j'ai un petit problème, je passe un oral de projet informatiques demain et je suis pas mal à la bourre, j'ai pour projet de créer une algo java dans le principe du bruteForce (pas dans le but de nuire à qui que ce soit, juste celui de réussir mon éxamen ^^ )
J'ai trouvé un programme en C et ai essaye de le traduire en java, lais j'ai quelques petit probléme que je n'arrive pas à résoudre malgrès toutes les aides présentes sur la toile.

J'espére qu'un jeune (ou moins jeune) prodige de l'informatique pourra m'aider =)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ptibruteforce;
import java.io.*;
import java.nio.*;
/**import java.util.*;
/**
 *
 * @author Giloup
 */

public class Main {
    long NBmdp = 0;
    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        int longMin = 0;
        int longMax = 0;

        System.out.print("Générateur BruteForce \n");
        System.out.print("Veuillez saisir la longueur minimum du mot de passe : \n");
        
        BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        longMin = br.read();

        System.out.print("Veuillez saisir la longueur maximum du mot de passe : \n");

        BufferedReader br2 = new BufferedReader( new InputStreamReader( System.in ) );
        longMax = br2.read();

        BruteForce (longMin, longMax);
    }

    public static void BruteForce (int lgMin, int lgMax){

        char fCharList[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

        int lg = lgMin;
        int i, x, y;

        char* Buff = (char*) malloc(lg);  /*a partir d'ici sa commence a merdouiller :s*/ 

        while (lg != lgMax)
        {
            realloc (Buff, lg);
            int Nchar[lg];
            for (i=0; i<=lg; i++);
            {
                Buff[i] = All[0];
                Nchar[i] = 0;
            }
        while (Nchar[0] != 26);
            {
            for(x=0; x<=26; x++)
                {
                Buff[lg] = All[x];
                Nchar[lg] = x;
                System.out.print("%s \n", Buff);
                NBmdp++;
                }
            for(y=lg; y>=0; y--)
            {
                Nchar[y] = 0;
                Nchar[y-1]++;
            }
            Buff[y] = All[Nchar[y]];
            }
        }
    lg++;
    }
free(Buff);
}


Merci d'avance à tous de votre aide =)

8 réponses

  1. Super, sa fonctionne toujours pas mais au moins j'ai plus d'erreur.
    Eh c'est toujours trop tard qu'on s'en veux de pas avoir écouté son prof ^^

    La apparemment j'ai encore un problème la :
            BruteForce (longMin, longMax);

    et la :
                    Buff[i] = fCharList[0];


    Je cherche , je cherche mais quand on a à peine les bases c'est pas facile.

    En tout cas les deux si vous remontez un jour dans le pas de calais j'offre ma tournée ^^
    1. Contributeur
      Relis un poil ton code :

      for(i=0;i<=lg;i++);


      Donc là ta boucle for elle ne va rien faire si tu mets un ; à la fin.

      A la place de :
      int Nchar[lg];

      Essaie :
      int[] Nchar = new int[lg];


      Alors ça :
       System.out.print("%s \n", Buff);
      T'as de la chance de pas être à côté :D:D , faire une conversion comme ça à la volée ^^

      Donc remplace :
       System.out.print("%s \n", Buff);

      Par :
       System.out.println(Buff);


      Déjà et ensuite redonne nous si il y a des erreurs.

      Le loup, solitaire et mystérieux.
      1. Merci beaucoup Nabla's
        J'ai réglé pas mal d'erreur (correctement ou pas je sais pas mais elle sont plus la =) )
        Par contre j'en ai encore 3 (petites surement =x)

                while (lg != lgMax)
                {
                    int Nchar[lg];  /* ']' expected et ';' expected je sais pas ce qu'il manque :s */
                    
                    for(i=0;i<=lg;i++);  /* empty statement after for (daufra m'expliquer ou :s ^^ */
                    {
                        Buff[i] = fCharList[0];
                        Nchar[i] = 0;  /* Variable NChar may not be initialised (c'est ce que j'essaye de faire la :( ) */
                    }
                    while(Nchar[0]!=26); /* encore empty statement.... */
                    {
                        for(x=0; x<=26; x++)
                        {
                        Buff[lg] = fCharList[x];
                        Nchar[lg] = x;
                        System.out.print("%s \n", Buff); /* print est souligné et Cannot find symbol */
                        NBmdp++; 
                        }
                    for(y=lg; y>=0; y--)
                    {
                        Nchar[y] = 0;
                        Nchar[y-1]++;
                    }
                    Buff[y] = fCharList[Nchar[y]];
                    }
                }
            lg++;
            }
        }


        Vraiment je te remercie beaucoup pour ton aide!!
        1. J'émets même un doute sur la réussite du malloc et du char*, puisque l'* désigne un pointeur, notion inexistante en Java.
          1. Contributeur
            char* Buff = (char*) malloc(lg); /* pas de malloc en java, utilises un string à la place de ton char*

            while (lg != lgMax)
            {
            realloc (Buff, lg); /* pas de reallocation, on gère pas la mémoire)
            int Nchar[lg];
            for (i=0; i<=lg; i++);
            {
            Buff[i] = All[0];
            Nchar[i] = 0;
            }
            while (Nchar[0] != 26);
            {
            for(x=0; x<=26; x++)
            {
            Buff[lg] = All[x];
            Nchar[lg] = x;
            System.out.print("%s \n", Buff);
            NBmdp++;
            }
            for(y=lg; y>=0; y--)
            {
            Nchar[y] = 0;
            Nchar[y-1]++;
            }
            Buff[y] = All[Nchar[y]];
            }
            }
            lg++;
            }
            free(Buff); /* pas besoin de supprimer la memoire, le string s'autodétruira comme un grand */
            }