Conversion fonction Delphi en C++
Bonjour à tous,
J'ai un petit problème pour traduire une fonction delphi en c++.
Mon code modifié me génère une boucle sans fin.
Code Delphi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
// Procédure pour compter les fichiers
Function CompteFichiers(Chemin:String):Integer;
Var S:TSearchRec;
Begin
Result:=0;
// Recherche de la première entrée du répertoire
If FindFirst(Chemin+'*.*',faAnyFile,S)=0
Then Begin
Repeat
// Il faut absolument dans le cas d'une procédure récursive ignorer
// les . et .. qui sont toujours placés en début de répertoire
// Sinon la procédure va boucler sur elle-même.
If (S.Name<>'.')And(s.Name<>'..')
Then Begin
If (S.Attr And faDirectory)<>0
// Dans le cas d'un sous-repertoire on appelle la même procédure
Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName)
// Sinon on compte simplement le fichier
Else Inc(Result);
End;
// Recherche du suivant
Until FindNext(S)<>0;
FindClose(S);
End;
End; |
Code C++ :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
int TForm1::Compteur(AnsiString chemin){
TSearchRec S;
int result = 0;
if (FindFirst(chemin+"*.*",faAnyFile,S)==0){
do{
if((S.Name != ".")&&(S.Name != ".."))
{
if ((S.Attr && faDirectory) != 0)
{
result = result+Compteur(chemin+S.FindData.cFileName);
}else {
result++;
}
}
}while(FindNext(S)!=0);
FindClose(S);
return result;
}
} |