begin process at 2012 02 11 09:24:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Suppression de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Suppression de fichier

jeudi 8 juin 2006 à 15:40:18 | Suppression de fichier

angelfire0808

J'ai un programme dans lequel je dois supprimer un fichier.Le probleme c'est qu'il ne se supprime pas toujours. Quelles sont les conditions pour qu'un fichier ne puisse etre supprimé ?
Merci d'avance.

PS : Suppression testée avec "unlink" et "remove"


void chargement_du_telephone(pt_cellule *tete,char numero_tel[],rep *repertoire,int index_telephone[])
{
     FILE* fichier = NULL;
     char num_select[25]; /* utilisé pour la lecture du fichier de SMS */
     int nb_sms_en_memoire = 0 ;
     int i =0;
     char telephone_temp[11];
     char nom_temp[25];
     /* Il faut faire un controle pour savoir si on peut ajouter des sms dans la memoire
      Si c'est une actualisation est que le nombre de SMS dans la liste depasse 50 SMS
      alors on ne peut les ajouter pour l'instant */

     
     if(( nb_sms_en_memoire = compteur_nb_sms(tete)) < MAX_SMS)
     
     {
            /* Il faut dans un permier temps charger les SMS dans la liste chainée venant du fichier memoireSMS_numtel.txt : */
            sprintf(num_select, "memoireSMS_%s.txt",numero_tel); /* On crée le fichier avec le numero de telephone */
            /* num_select represente le nom du fichier */
            OUVERTURE_fichier(tete,num_select);
           
             /* Ensuite on ajoute les SMS reçu :  */       
            sprintf(num_select, "%s.txt",numero_tel); /* On crée le fichier avec le numero de telephone  */     
            OUVERTURE_fichier(tete,num_select);
       
     }
    /* Sinon cela signifie qu'il n'y a plus de place en memoire actuellement */
    else
    {
         printf("\nVous n'avez plus de place pour recevoir de nouveaux SMS");
         printf("\n Veuillez en supprimer");
    } 

           
/* Maintenant on va charger le reperoire */
sprintf(num_select, "memoire_repertoire_%s.txt",numero_tel); /* On crée le fichier avec le numero de telephone  */     
fichier = fopen(num_select, "r")
if((fichier != NULL) && (!fichier_VIDE(num_select)))
   {           
            while(!feof(fichier))/* tant qu'on arrive pas à la fin du fichier */
                 {
                    fscanf(fichier,"\r%[^\\]\\ %s\n",telephone_temp,nom_temp)
                   
                    ajout(repertoire,index_telephone,telephone_temp,nom_temp)/*on s'occupe du tableau d'index */
                    repertoire->dernier++;         
                 }

fclose(fichier);
   }
SUPPRIMER_fichier(num_select);

}

void SUPPRIMER_fichier(char num_select[])
{
 remove(num_select); /*On supprime le fichier */
 system("PAUSE");
 

}
jeudi 8 juin 2006 à 17:40:18 | Re : Suppression de fichier

angelfire0808

Si j'enleve la ligne : (!fichier_VIDE(num_select)) ca fonctionne, mais j'en ai besoin , alors comment faire? :-°

Code : C
int fichier_VIDE(char num_select[])
{
    int VIDE = 0 ; /* le fichier est considéré comme plein par défaut */
    FILE* fichier = NULL;
       
    fichier = fopen(num_select, "r");

          fseek(fichier,0,SEEK_END);
          if(ftell(fichier) == 0) 
             {
             VIDE = 1 ; /* le fichier est vide */
             }
     fclose(fichier)
return(VIDE);
}
jeudi 8 juin 2006 à 21:52:30 | Re : Suppression de fichier

laurent1024

Membre Club
fichier = fopen(num_select, "r");
if ((fichier != NULL) && (!fichier_VIDE(num_select)))
{          
    while(!feof(fichier)) /* tant qu'on arrive pas à la fin du fichier */
    {
        fscanf(fichier,"\r%[^\\]\\ %s\n",telephone_temp,nom_temp);
        ajout(repertoire,index_telephone,telephone_temp,nom_temp);  /*on s'occupe du tableau d'index */
        repertoire->dernier++;        
    }
    fclose(fichier);
    SUPPRIMER_fichier(num_select);
}
SUPPRIMER_fichier(num_select);

Dans ton code initial, si le fichier c'est ouvert (fichier != NULL), mais que ton fichier est vide, tu ne rentre pas dans la condition. Et donc le flux de fichier n'est pas fermé c'est peut etre pour ca que la suppression ne marche pas.

++


Cette discussion est classée dans : fichier, sms, select, num, telephone


Répondre à ce message

Sujets en rapport avec ce message

Informations pour l'utilisation des fichiers en C [ par angelfire0808 ] J'ai un fichier avec comme contenu : test 556565 autre test 1762167 ..... je souhaite mettre ce contenu dans ma liste chainée mais ça bloque PB avec la gestion de fichier dans une de mes fonctions!!!! [ par kobee12 ] J'ai cree deux fonctions qui me permettent de charger et d'enregistrer dans un fichier selon l'ecriture dans le fichier de la maniere suivante : jour de l'aiiide!! [ par eliramomo ] bonjour !! j'aimerai que vous m'aidiez svp!! je veux lire dans un dossier specifié par example c:\\nouveau dossier tout les fichiers a la fois . J'exp Pb de copie de fichier/taille de structure [ par wannie ] Salut tt le monde. Quelqu'un pourrai tester mon prog est me dire si ça fonctionne. Moi je comprend pas j'ai une copie d'un caractère dans chaque ligne connexion modem-telephone lecture fichier son [ par sena ] Salutj'effectue par soft une connecxion et deconnexion entre deux modem. Je pense donc que je peux faire la meme chose en contactant un telephone et n modem [ par grekers ] bonjour j effectu un appelle avec mon modem vers un telephone et je voudrais savoir comment faire pour quand je decroche le telephone ca me lance un f écriture dans un fichier en C [ par Trinity_vv ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB information fprintf [ par angelfire0808 ] Quand j'ecrie dans mon fichier avec la commande:  fprintf(fichier, "%s;%d", sms_a_envoyer,num_send);&nb Remplacement de chaines de caractères dans un fichier [ par tigerskin ] Bonjour !!! J'ai un problème : je souhaite réécrire une donnée dans un fichier par-dessus une autre donnée...le programme entre bien dans la condition fichier [ par infodaoudi ] je veux afficher la classes suivante dans un fichier binaire: class Noeud { public: int nbEntree; PageRegion *fils[C+1]; } avec: class PageRegion


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,122 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales