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 Discussion :

copier le contenu d'un fichier


Sujet :

C

  1. #1
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut copier le contenu d'un fichier
    Bonsoir,

    J'ai un fichier 1 qui contient des lignes et un fichier 2 qui est vide.

    Je voulais copier le contenu de fichier 1 dans un fichier 2.
    puis je vais travailler avec ce fichier 2 qui va être modifier.

    Existe-t- elle une fonction permettant de copier le contenu d'un fichier dans un autre fichier ?

    Merci.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    En C pur, il n'y a rien pour copier des fichiers
    dans la lib C standard, il n'y a rien non plus

    après, tu as 2 options :
    la solution crade : system("copy(ou cp) fichier1 fichier2"). C'est crade mais c'est rapide.

    la solution soft :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ouverture du fichier 1 en lecture
    ouverture du fichier 2 en écrasement (remise à 0 si existant)
    tant qu'il y des caractères à lire dans le fichiers 1
       tu écris les caractères lus dans le fichier 2
    fin tant que
    fermeture fichier 1
    fermeture fichier 2
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    la solution crade : system("copy(ou cp) fichier1 fichier2"). C'est crade mais c'est rapide.
    Pouvez vous me donner un exemple où utilise cette instruction ?

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    La solution crade utilise les fonctions du système d'exploitation pour faire la copie au lieu de la faire faire par le programme C. Elle dépend donc du système d'exploitation utilisé.

    Utilise la solution "soft". Elle est simple à mettre en oeuvre et au moins tu apprendras à manipuler les fichiers.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    Bonsoir,

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <windows.h>
    #include <stdio.h>
     
    int main()
    {
    	printf("%s\n", CopyFile("C:\\cop\\cop\\output.txt", "C:\\cop\\cop\\input.txt", FALSE) ? "Ok" : "Echec");
      return 0;
    }
    "input.txt" "output.txt" sont deux fichiers existants dans mon projet de travail.
    "input.txt" contient des données et le fichier "output.txt" est vide
    Je voulais copie le contenu de 'input.txt" vers "output.txt".

    Mais après compilation et exécution j'ai le résultat:
    ok

    Mais, j'ai remarqué que le fichier vide "output.txt" reste vide
    et le fichier "input.txt" contenant des données devient vide !!

    Signifie quoi ceci ?

    Merci.

  6. #6
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Citation Envoyé par vivaviva Voir le message
    Signifie quoi ceci ?
    Que tu doit échanger les paramètres input.txt et output.txt ?
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  7. #7
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Il y a deux solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CopyFile("input.txt", "output.txt", FALSE) ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("copy input.txt output.txt");
    Laquelle est rapide ?

    Merci.

  8. #8
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    (éclair de génie matutinal) et si tu les testais, tout simplement ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  9. #9
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    i tu les testais, tout simplement ?
    les deux marchent.

    Comment je vais savoir une plus rapide que l'autre ?
    C'est vraie ce n'est pas performant d'appel une commande dos d'un programme ? et pourquoi ?

  10. #10
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    avec l'appel à system, tu ouvres un shell pour ensuite exécuter la commande copy.
    Avec Copyfile, tu utilises directement l'API Win32.
    Mais je ne pense pas qu'il y ait une grande différence dans la vitesse de copie, sauf si tu copies plusieurs fichiers.

    De toute façon, ça a pas grand chose à voir avec le C...

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/08/2007, 17h11
  2. Copier le contenu d'un fichier distant dans une variable en local
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/08/2007, 20h34
  3. Copier le contenu d'un fichier vers un autre fichier Excel
    Par mathias dans le forum VBA Access
    Réponses: 4
    Dernier message: 13/06/2007, 14h47
  4. Copier le contenu d'un fichier word
    Par MayOL69bg dans le forum C#
    Réponses: 7
    Dernier message: 04/06/2007, 16h34
  5. Copier le contenu d'un fichier dans un autre
    Par moncef357 dans le forum Pascal
    Réponses: 20
    Dernier message: 09/05/2007, 16h02

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