IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Activer et desactiver une fonction


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Par défaut Activer et desactiver une fonction
    Bonjour
    j'ai une fonction dans mon programme qui m’empêche de supprimer des dossier
    comment l'activer et la desactiver ?

    voici la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    void scan_dir3(char Rep[], TTreeNode *p)
    {
    	char CopieRep[1000];
    	lstrcpy(CopieRep, Rep);
    	WIN32_FIND_DATA fd;
            String asFic;
            String asFic2;
    	char Nom[1000]="";
            int z;
    	lstrcpy(Nom, CopieRep);
            lstrcat(Nom, "*.*");
    	HANDLE h = FindFirstFile(Nom, &fd);
            bool res = true;
    	bool FirstFile=false;
     
    	if (h!=INVALID_HANDLE_VALUE)
            {
    			while (res && !Stopper)
                            {
                                     // Routine de memorisation des fichiers + chemin
    				asFic2=(fd.cFileName);
                                     asFic=(Nom);
                                     if  (asFic2!="." )
                                     {
    						if (asFic2!="..")
                                                    {
                                                            asFic=asFic.SubString(1, asFic.Length()-3);// Supprime *.*
                                                            if (asFic2.Pos("*.*")==0)
                                                            {
    								if (imgPath == "")
                                                                     {
                                                                           tp=(asFic+asFic2);
                                                                           fil=ExtractFileName(tp);
    									if (fil==VarDansBoucleDeRecherche)
    									{
    										imgPath=ExtractFilePath(tp);
                                                                             }
                                                                       }
                                                                 }
    							}
                                               }
                                               asFic="";
                                               asFic2="";
    					   if (lstrcmp(fd.cFileName, "..") && lstrcmp(fd.cFileName, "."))
                                               {
                                                    if (fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
                                                    {// Traitement de répertoire
    							nbRep++;
                                                            char N[1000];
                                                            lstrcpy(N, CopieRep); lstrcat(N, fd.cFileName);
                                                            lstrcat(N, "\\");
    						        if (FirstFile)
                                                            {
                                                                  FirstFile = false;
                                                             }
    							 else
                                                             scan_dir3(N, p);
                                                    } 
                                                    else
    						{
                                                           nbFiles++;
                                                           if (FirstFile)
                                                           {
    					                    FirstFile = false;
                                                            }
                                                      }
                                           }
    						res = FindNextFile(h, &fd);
                              }
               }
    }
    Merci

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut, tu ajoutes une condition à l'appelle de la fonction?

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Par défaut
    Bonsoir crayon
    non je l'appelle juste pour rechercher un fichier

    j'ai essayé p->delete() de TTreeNode *p mais il plante le proc

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Bonsoir,

    Le problème doit provenir d'un pointeur sur un fichier qui a permis de l'ouvrir et qui n'a pas été refermé.
    Le code semble vraiment mal optimisé et utiliser un algorithme compliquer pour faire pas grand chose.

    Par exemple, au lieu d'essayer d'enlever l'extension, tu peux utiliser la fonction ChangeFileExt(NomFichier,"").

    Essaie d'activer CodeGuard pour détecter le problème ou réécrit ta fonction.

    La FAQ a des exemples de manipulation de fichiers et répertoires.
    http://cpp.developpez.com/faq/bcb/?p...n-des-fichiers

    De plus, ton paramètre TTreeNode *p ne semble pas utilisé. C'est normal ?
    Que veux-tu faire exactement ?

    Bonne soirée.

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Par défaut
    merci pour la réponse
    hier soir j'ai résolu mon problème en mettant FindClose(h); en fin de fonction et çà a l'air de fonctionner.

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Par défaut
    Merci
    j'essaye de faire une fonction récursive qui scan un répertoire et ses sous dossiers pour voir si un fichier est présent

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2011, 22h08
  2. activer et desactiver une aide dans tout un site
    Par trenkwill dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/03/2009, 19h40
  3. [SQL] comment "desactiver" une fonction php dans une page?
    Par horas dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2007, 15h04
  4. activer une fonction d'une page contenue dans une popup.
    Par manutudescends dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2006, 14h32
  5. Activer/Desactiver une connexion au réseau local
    Par Yodagobah dans le forum MFC
    Réponses: 7
    Dernier message: 05/01/2005, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo