Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Copier/coller de données contenue dans un fichier en C [ Archives / Au secours ] (petit_mateo)

lundi 6 juin 2005 à 12:34:28 | Copier/coller de données contenue dans un fichier en C

petit_mateo

Voici mon code :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int x()
{
   char ANCIEN[] = "resta.txt";
   char NOUVEAU[] = "restb.txt";
   FILE *INFILE, *OUTFILE;
   char J1o[30], J2o[30];

   INFILE = fopen(ANCIEN, "r");
   if (!INFILE)
      {
       printf("Erreur : impossible d'ouvrir...%s", ANCIEN);
       exit(-1);
      }

   OUTFILE = fopen(NOUVEAU, "w");
   if (!OUTFILE)
      {
       printf("Erreur : impossible d'ouvrir...%s", NOUVEAU);
       exit(-1);
      }

   while (!feof(INFILE))
      {
       fscanf (INFILE, "%s\n%s\n", J1o, J2o);
       fprintf (OUTFILE, "%s\n%s\n", J1o, J2o);
      }

   fclose(OUTFILE);
   fclose(INFILE);
   system("pause");
   return 0;
}

int y(char *J1, char *J2)
{
   time_t t;
   char ANO[] = "resta.txt";
   FILE *ENREG;
   ENREG = fopen(ANO, "w");
   if (!ANO)
      {
       printf("Erreur : impossible d'ouvrir...%s", ENREG);
       exit(-1);
      }
   else
      {
       time(&t);
       printf("%s\n", ctime(&t));
       fprintf (ENREG, "%s %s %s\n", J1, J2, ctime(&t));
      }
}

int main()
{
   char Jo1[30];
   char Jo2[30];
   printf("Nom du joueur 1 : ");
   scanf("%s", Jo1);
   printf("Nom du joueur 2 : ");
   scanf("%s", Jo2);
   y(Jo1, Jo2);
   x();
}

Mon soucy est que le second enregistrement (dans le fichier NOUVEAU) qui donc doit correspondre à un copier/coller du 1er (fichier ANCIEN) ne se fait pas correctement !
Dans le fichier ANCIEN, j'ai : 
                  azezr rgr Mon Jun 06 12:17:05 2005
Et dans le second, fichier NOUVEAU, il s'enregistre ça :
Jÿ_+^ÿ(ßú
&6‚ÿ ÿÆÕºx¤Bresta.txt

Il est le soucy??? Que dois-je faire??? Je v peter un cable et l'ordi par la meme occaz! lol

Par la meme occassion, que dois-je rajouter pour que l'enregistrement du 1er fichier (ANCIEN) doit se coller à la fin du 2eme enregistrement (NOUVEAU) ???

Merci de votre rapidité (please avant le 20 juin 2005!!!)


lundi 6 juin 2005 à 12:42:05 | Re : Copier/coller de données contenue dans un fichier en C

Pamaury

Réponse acceptée !
si tu dois copier et coller le fichier parfaitement, regarde s'il n'existe pas une fonction copy dans stdio

sinon c'est beaucoup plus rapide de faire:
OUTFILE=fopen(outfile,"wb");// note 'b' après le' w'
INFILE=fopen(infile,"rb");// idem

fseek(INFILE,0,SEEK_END);// va à la fin du fichier
long size=ftell(INFILE);// récupère la taille
fseek(INFILE,0,SEEK_SET);// retourne au début

void *lpBuffer=malloc(size);
fread(lpBuffer,1,size,INFILE);
fwrite(lpBuffer,1nsize,OUTFILE);
fclose(INFILE);
fclose(OUTFILE);

ce la marche si le fichier fais moi de 4Go
et là pas de problème

A m a u r y

lundi 6 juin 2005 à 13:06:50 | Re : Copier/coller de données contenue dans un fichier en C

petit_mateo

Pamaury, merci bien mais y'a pas de fonction copier/coller dans stdio


lundi 6 juin 2005 à 13:08:07 | Re : Copier/coller de données contenue dans un fichier en C

petit_mateo

Je pige pas l'utilité du d derriere le mode d'ouverture des fichiers...

Sinon merci pour la fonction de fin de fichiers !

Ma question reste d'actualité ! Snif !

lundi 6 juin 2005 à 13:11:42 | Re : Copier/coller de données contenue dans un fichier en C

vecchio56

Administrateur CodeS-SourceS
Tu es sous window (system("pause")). Utilise donc CopyFile (#include <windows.h>)

lundi 6 juin 2005 à 13:13:20 | Re : Copier/coller de données contenue dans un fichier en C

petit_mateo

vecchio56, bonne idée mais je bosse sur Turbo C et la bibliotheque window.h n'existe pas!!!!
Je suis obligé car c pour des exams d'utiliser le vieux turbo C !!!
La haine!

lundi 6 juin 2005 à 14:41:08 | Re : Copier/coller de données contenue dans un fichier en C

Pamaury

Réponse acceptée !
avec ma fonction cela te permet de copier/coller n'importe quel fichier:

int copy_file(const char *infile,const char *outfile)
{
    FILE *OUTFILE=fopen(outfile,"wb");// note 'b' après le' w': écriture en binaire(tous les octets sont copier)
    FILE *INFILE=fopen(infile,"rb");// idem lecture en binaire(tous les octets sont copier)

    if(!INFILE || !OUTFILE)
        return 0;

    fseek(INFILE,0,SEEK_END);// va à la fin du fichier
    long size=ftell(INFILE);// récupère la taille
    fseek(INFILE,0,SEEK_SET);// retourne au début

    void *lpBuffer=malloc(size);
    fread(lpBuffer,1,size,INFILE);
    fwrite(lpBuffer,1,size,OUTFILE);
    fclose(INFILE);
    fclose(OUTFILE);

    return 1;
}

Pour ta deuxième question je n'ai pas tout compris:
tu veux copier ce qui est dans le fichier ANCIEN pour le recoller à la suite de ce même fichier ???
si c'est bien cela il suffit de tranbsformer cette ligne:
FILE *OUTFILE=fopen(outfile,"wb");
en:
FILE *OUTFILE=fopen(outfile,"awb");// le 'a' permet d'ajouter à la fin du fichier au lieu d'écraser

et d'appeler ma fonction avec le même fichier en entrée et sortie:
copy_file("test.txt","test.txt");

A m a u r y

lundi 6 juin 2005 à 16:08:33 | Re : Copier/coller de données contenue dans un fichier en C

petit_mateo

Merci ! Tout ça m'a bien aidé et le soucy est résolu !

Specials thanx to AMAURY...

lundi 6 juin 2005 à 17:31:52 | Re : Copier/coller de données contenue dans un fichier en C

Joky

Membre Club
Mais dis moi, après un malloc ???
on fait pas un free( ... ) ;)
lol, pour une fois que j'peux faire une remarque :p

void Aurevoir( void ); //Bonne journée


lundi 6 juin 2005 à 17:41:16 | Re : Copier/coller de données contenue dans un fichier en C

Joky

Membre Club
Et pourquoi quand je le fais et que j'affiche le buffer, il me rajoute des caractères ???
Genre dans le fichier ya : "Joky c'est un beau gosse quand meme"
et quand je l'affiche, j'ai : "Joky c'est un beau gosse quand meme\Micra"
étrange...
Faudrait pas lui indiquer la fin de la chaïne ???

void Aurevoir( void ); //Bonne journée



1 2

Cette discussion est classé dans : fichier, printf, char, ancien, infile


Répondre à ce message

Sujets en rapport avec ce message

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;< Lecture et ecriture sur fichier [ par developvbdebut ] Bonjour tout le mondeJe travaille sur la gestion des fichier en c.Mon livre n'explique pas clairement l'ectriture et la lecture dans les fichiers.Voic CRYPTAGE !!! [ par megaman ] Voilà j'essai de faire un log de cryptage à l'aide de fonctions et procédure.Les fonctions et procédures :Une fonction qui retourne le nom de fichieru SOS manque d'inspiration [ par graall ] J'ai besoin de faire un petit programme (en mode console) qui demande à l'utilisateur de saisir le nom d'un fichier et ensuite, qui vérifie si ce fich 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 Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl [debutant]attribution dun mot a une char et comparaison ... [ par DarkEbola ] en fait, jaurais aimé attribuer du texte a une charkke chose comme 500 ou 600 caracteres maximais jarrive pas a lui attribuer plus de 1 Charsuis-je pl Je cherche l'erreur [ par ScorpionTiti ] J'ai effectué un programme qui me permette d'écrire dans un fichier et je l'ai compilé. En le lançant, il m'envoie un message d'erreur mais je ne sais char ** [ par PADYVEN ] Si quelqu'un peut jeter un oeil sur ce code et le critiquer merci(constructive les critiques :-))j'ai un probleme tout betece programme lit un fichier un probléme avec la lecture de fichier [ par sanae19 ] bonsoir en fait voila j'ai un petit probléme de lecture de fichier en fait ma, methode marche tres bien tout seule mai le probléme c'est qu'elle enreg


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.