begin process at 2012 05 29 16:10:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

ca plante et sa m'enerve


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

ca plante et sa m'enerve

lundi 16 mai 2005 à 12:24:42 | ca plante et sa m'enerve

nach73

Bonjour je suis debutant j'essaie de copier un fichier source dans un fichier destinataire par des fonctions ci dessous.
Mais seulement il me creer bien mes 2 fichiers mais ne copie pas le fichier source dans destinataire.

int OuverFichierSource (char *fichier,FILE *fs)
{
    
      if ((fs = fopen(fichier,"rb")) == NULL)
     {
              
                printf( "\nErreur: Impossible de lire le fichier %s \n",fichier);
                system("PAUSE");
                return 0;
     }
     return 1;
}
int OuverFichierDest (char *fichier,FILE *fd)
{
      if ((fd = fopen(fichier,"wb")) == NULL)
     {
              
                printf( "\nErreur: Impossible d'ecrire le fichier %s \n",fichier);
                system("PAUSE");
                return 0;
     }
     return 1;
}   

int CopieFichier(char *fichier,char *fichierDest)
{
    FILE *fs;
    FILE *fd;
    int test;
    char *memoir = (char *)malloc(TAILLE);
    int longueur;
    test=OuverFichierSource (fichier,fs);
    if (test == 1)
    {
            
          OuverFichierDest(fichierDest,fd);
          while((longueur = fread(memoir,1,TAILLE,fs)) != 0)
                  fwrite(memoir,1,longueur,fd);
          fclose(fs);
          fclose(fd);                        
          free(memoir);
          return 1;     
     }
     return 0;
}

merci de votre aide.

lundi 16 mai 2005 à 13:45:36 | Re : ca plante et sa m'enerve

luhtor

Il me semble qu'il y a un problème avec int longueur qui n'est pasinitialisé et qui vaut donc par défaut 0. Or tu l'utilises dans fwrite.De plus pourquoi il existe à la fois TAILLE et longueur ?

PS: en général, return 0; ca veut dire, pas d'erreur :)

Aller ++
lundi 16 mai 2005 à 14:14:50 | Re : ca plante et sa m'enerve

bayeto

Membre Club
Nan c'est pire que ca: tes fichiers sont bien ouverts dans les fonctions, mais comme le passage des arguments est par valeur, ben ton CopierFichier ne fait que reprendre la valeur qu'il a passé...

int OuvreFichierDest (char *fichier,FILE **fd)
{
   *fd = fopen...
}
(...)

FILE *fd;
(...)
test = OuvreFichierDest(fichierDest,&fd);

Comme ca ton CopierFichier reconnaitra la valeur de retour de fopen de tes fonctions.


mayonaise tournera, bientôt, très bientôt...

lundi 16 mai 2005 à 14:57:56 | Re : ca plante et sa m'enerve

vecchio56

Administrateur CodeS-SourceS
Oui c'est plutot ca, car longueur est bien initialisé
lundi 16 mai 2005 à 15:07:56 | Re : ca plante et sa m'enerve

luhtor

A oui autant pour moi j'avais pas vu l'initialisation :)


lundi 16 mai 2005 à 15:22:49 | Re : ca plante et sa m'enerve

magma

Réponse acceptée !

//------------------------------------------------------------------
FILE *OuverFichierSource(char *fichier)
{
  FILE *fs;
     
  if((fs = fopen(fichier,"rb")) == NULL) {
    printf("\nErreur: Impossible de lire le fichier %s \n",fichier);
    system("PAUSE");
  }
  return fs;
}

//------------------------------------------------------------------
FILE *OuverFichierDest (char *fichier)
{
  FILE *fd;

  if((fd = fopen(fichier,"wb")) == NULL) {
    printf("\nErreur: Impossible d'ecrire le fichier %s \n",fichier);
    system("PAUSE");
  }
  return fd;
}   

//------------------------------------------------------------------
int CopieFichier(char *fichier,char *fichierDest)
{
  FILE *fs, *fd;
  int  longueur;
  char memoire[BUFSIZ];

  if(fs = OuverFichierSource(fichier)) {
    if(fd = OuverFichierDest(fichierDest)) {
      while(!feof(fs)) {
        longueur = fread(memoire, 1, BUFSIZ, fs);
        fwrite(memoire, 1, longueur, fd);
      }
      fclose(fd);
    }
    fclose(fs);
    return 1;     
  }
  return 0;
}



Cette discussion est classée dans : fichier, fs, return, char, fd


Répondre à ce message

Sujets en rapport avec ce message

Petite question ayant attrait à la gestion de fichier. [ par meteore ] Voila je suis en train de faire un petit logiciel pour le classement de mes cds.J'ai donc créer une fonction permettant d'ajouter un cd dans une boite Problème de lecture fichier [ par nach73 ] J'ai un enorme probleme je n'arrive pas a lire dans mon fichierVoila la partie de mon programme.Si quelqu'un peux m'aide.Merci.//ouverture du fichier Probleme dans mon programme password [ par Jarod1980 ] Salut tout le monde,Voilà j'ai un problème dans mon programme de password. Je m'explique: J'ai développé en premier lieu un programme où l'utilisateur Liberation de memoire [ par gwenChina ] Bonjour a tous,Je viens de debuter mon stage, je suis donc nouveau dans ce forum.En fait j'ai un probleme de liberation de memoire. J'alloue un pointe Lecture d'un fichier et probleme divers [ par lacharlottinne ] Bonjour , je vous explique vite fait ce que je dois faire : J'ai un fichier texte, dans le quel on doit trier des mots .. la premier étape est => o Aide pour enregistrement fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;< Copier/coller de données contenue dans un fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;< Problème avec quick sort avec des chaines de caractères [ par bakka72 ] Bonjour,Je dois réalisé un quick sort de chaines et jai u souci .1er. je parcourt kle fichier a trié pour compter le nombre délément 2eme je crée un t Probleme dans mon prog password dans la gestion ' * ' [ par Jarod1980 ] Salut,Voila j'ai développé un programme de password qui récupère le password crypté dans un fichier et le compare au password rentré par l'utilisateur fichier est char [ par Bignours ] bonjour j'ai un fichier composer ainsi:score.txt:0121235613et je voudrai pouvoir lire chaque ligne et effecté ces valeur dans un tableau d'entier.j'es


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,761 sec (3)

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