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

MFC Discussion :

Probleme de lecture de fichier


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut Probleme de lecture de fichier
    Slt tlm, je suis en train de réaliser un client mail et j'ai un proléme aux niveau du telechargement des pieces jointe. Les pieces jointe sont en Base64. Le probleme c'est que lorsque j'envoie un fichier .txt, jarrive a décoder le message, mais si c'est un fichier .rar, je n'arrive pas a le décoder. J'aimerais savoir comment on fait pour lire tout les caractéres ( même les bizar ) d'un fichier pour ensuite les stocker dans une variable string.
    Merci ++

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    Les fichiers .rar comme les fichiers .zip utilisent un algorithme de compression à base de dictionnaire, si tu ne disposes pas de la bibliothèque idoine pour procéder au décodage tu n'y arriveras pas.
    Sinon je ne comprends pas vraiment ton problème, le fichier pièce jointe doit être traité comme un fichier binaire.
    Pourquoi tu veux le mettre dans une CString et le decoder ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut
    j'ai besoin de décoder le fichier piece jointe,car lors de l'envoie de l'e-mail, la piece jointe est encodé avec l'algo Base64. Donc quand je récupére la piece jointe, j'ai besoin de la décoder. Merci pour ta réponse,je vais regarder ca.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu as besoin de la decoder dans l'algo Base64 pas le contenu ..

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut
    jdoi faire comment pour décoder la piece,et pas le contenu?? Parceque la méthode qui me permet de décoder, elle prend un string en paramétre.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut
    personne pour m'aider?

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu peux lire un fichier binaire dans une CString ,mais reste a savoir si ta fonction prend en compte la longueur de la CString (GetLength()), surtout pas strlen qui s'arretera au premier zero rencontré.

    avec quelle classe (CFIle ?) tu lis ton fichier ?
    - il te faudra connaitre la longueur a lire allouer par exemple une chaine de caracterez sur la longueur trouvée ,
    - Lire le fichier en une seule fois .
    et enfin puisque tu es obligé d'utiliser une CString construire un objet CString :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CString str=CString(lpBuff,nLenBufRead);
    delete []lpBuff;

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut
    j'ai fait ce que tu m'a dis et le décodage marche nikel. Mais apparement le probléme c'est lorsque que je veut sauvegarder. J'utilise la stl pour la sauvegarde. Quand je veut ouvrir le fichier .rar, il m'indique une erreur. Donc je sait pas trop quel fonction utiliser. J'ai fait comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string g(str);
    s=Code.decode(g);
     
    ofstream o;
    o.open("test.rar",ios_base::binary);
    o.write(s.c_str(),s.size());
    ++

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    a mon avis le probleme de construire un objet string de la stl comme tu l'a fait doit tronquer la CString au premier \0 rencontré ...
    d'ailleurs pourquoi s'embeter ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ofstream o;
    o.open("test.rar",ios_base::binary);
    o.write(static_cast<const char *>(str),str.GetLength());

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Points : 40
    Points
    40
    Par défaut
    merci,ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de lecture de fichier swf avec c#
    Par Vince57 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/06/2006, 14h18
  2. problem avec lecture de fichier!!(débutant)
    Par pitbul100 dans le forum Delphi
    Réponses: 4
    Dernier message: 23/05/2006, 19h51
  3. Probleme de lecture de fichier
    Par calimero642 dans le forum Langage
    Réponses: 1
    Dernier message: 19/05/2006, 12h20
  4. [VB.Net] probleme de lecture de fichier
    Par michel71 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/05/2006, 15h42
  5. [vb.net][xml] probleme de lecture de fichier
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/07/2005, 11h51

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