Convertion C -> C#

Signaler
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
-
Bonjour a tous,

voila je cherche à convertire une fonction que j'ai codé en C en C#... voila la fonction C:



static private int MSNBruteForce(int LongueurMax, char begin, char end, int err)

{

char code[255]; // tableau contenant le code

int i; // indice tableau

int longueur; // longueur en traitement



// on traite toutes les longueurs possible jusqu'a longueurmax

for (longueur=1; longueur <= LongueurMax; longueur++)

{

// marque de fin de génération de longueur

// initialisation du premier "mot"

for (i=0; i < longueur; code[i++] = begin)

code[longueur] = '0';



// on fait toute les lettres

while(code[longueur-1] <= end)

{

i = 0; // init indice


while(code[i] > end &&
code[i+1] != '0')

{


code[i] =
begin;

code[++i]++;




if((code[i] ==
('9'+1)) && (err 0)) code[i] 'A';


if((code[i] ==
('Z'+1)) && (err 0)) code[i] 'a';


if((code[i] ==
('9'+1)) && (err 1)) code[i] 'a'; // cas particulier (5)

}




// ecriture du code généré dans
le fichier

if(err == 0)

{


if(('0' <=
code[i] && code[i] <= '9') || ('a' <= code[i] &&
code[i] <= 'z') || ('A' <= code[i] && code[i] <= 'Z'))



printf("%s\n", code);

}

else if(err == 1)

{


if(('0' <=
code[i] && code[i] <= '9') || ('a' <= code[i] &&
code[i] <= 'z'))



printf("%s\n", code);

}

code[0]++; // caractere suivant

}

}

return 1;

}



et voila la convertion en C#:



static private int MSNBruteForce(int LongueurMax, char begin, char end, int err)

{

char[] code = new char[255]; // tableau contenant le code

int i; // indice tableau

int longueur; // longueur en traitement



// on traite toutes les longueurs possible jusqu'a longueurmax

for (longueur=1; longueur <= LongueurMax; longueur++)

{

// marque de fin de génération de longueur

// initialisation du premier "mot"

for (i=0; i < longueur; code[i++] = begin)

code[longueur] = '0';



// on fait toute les lettres

while(code[longueur-1] <= end)

{

i = 0; // init indice


while(code[i] > end &&
code[i+1] != '0')

{


code[i] =
begin;

code[++i]++;




if((code[i] ==
('9'+1)) && (err 0)) code[i] 'A';


if((code[i] ==
('Z'+1)) && (err 0)) code[i] 'a';


if((code[i] ==
('9'+1)) && (err 1)) code[i] 'a'; // cas particulier (5)

}




// ecriture du code généré dans
le fichier

if(err == 0)

{


if(('0' <=
code[i] && code[i] <= '9') || ('a' <= code[i] &&
code[i] <= 'z') || ('A' <= code[i] && code[i] <= 'Z'))



Console.WriteLine(code);

}

else if(err == 1)

{


if(('0' <=
code[i] && code[i] <= '9') || ('a' <= code[i] &&
code[i] <= 'z'))



Console.WriteLine(code);

}

code[0]++; // caractere suivant

}

}

return 1;

}



mon probleme est que en C#, l'affiche me met un '0' en plus a chaque
fois, je crois voir pourquoi, mais je ne sais pas comment réparer?

c'est pouquoi je demande votre aide...

Merci par avance

Bob

"La chance accorde ses faveur aux esprits avertis..."

2 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
22
est-ce un \0 ou un 0 en plus ?

Tu le vois ou le problème d'après toi ?

::|The S@ib|::
MVP C#.NET
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
bah test le code et regarde si tu trouve que ca fait une generation normale... en plus ca me fait une boucle infinie !
Bob...

"La chance accorde ses faveur aux esprits avertis..."