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 :

Problème pour faire une copie de fichier.


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Points : 121
    Points
    121
    Par défaut Problème pour faire une copie de fichier.
    Salut,

    Je réalise un minitchat (avec des sockets) et puis j'ai voulut ajouté un transfert de fichier.

    J'arrive a transférer des fichier texte (*.txt) sans problème mais des que je veut passer une image (*.bmp par exemple),aucun logiciel ne veut l'ouvrir, ça me met "format invalide".

    Pourtant l'image transféré à exactement la même taille que l'image originale. (pas un octets de plus et pas un de moins)

    Merci de m'aider

    PS: Pour traiter les fichiers j'utilise "CreateFile()", "ReadFile()" et "WriteFile()"

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Points : 121
    Points
    121
    Par défaut
    J'ai trouvé le problème, en fait j'utilisait "sprintf();" comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /**lecture du fichier, les donnees sont dans "char donnees_fichier[taille]"**/
     
    sprintf(buffer,"%c%c%s",car1,car2,donnees_fichier);
     
    //car1 et car2 sont des informations pour la transmition par socket
    la fonction "sprintf();" arrête la copie dès qu'elle trouve un \0 (caractère NULL) or dans un fichier qui n'est pas un *.txt il peut y avoir des caractètres NULL, résultat "sprintf();" arrête la copie et le fichier transmis est incomplet.

    Il faut donc utiliser une boucle "for()" pour copier tout les octets un par un.

    Désolé pour le dérangement, j'espère que ce topic permettra d'aider d'autres personnes.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/11/2006, 12h39
  2. Réponses: 4
    Dernier message: 09/02/2006, 15h20
  3. probléme pour faire une copie de base de donnée
    Par nours33 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/12/2005, 12h35
  4. problème pour faire une requête
    Par mitchbuck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/11/2005, 22h48
  5. Réponses: 5
    Dernier message: 24/09/2005, 20h31

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