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 :

copier le contenu d'un fichier dans un Cstring avec MFC


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut copier le contenu d'un fichier dans un Cstring avec MFC
    bonjour ,
    je doit modifier un programme (fait auparavant en MFC ou je ne suis pas forcément trés bon) je doit importer un fichier texte et le parsser donc lire le fichier et le copier dans tampon , le problème est quand je veut importer le fichier texte avec la classe CFile il ne trouve pas le fichier alors que je lui est donner le bon chemin :

    le code de l'importation du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ........
    ........ 
      CFile f2 (L"c:\\test.txt", CFile::modeRead | CFile::typeText  );
    Cstring str ;
     
      if(  f2.Open(L"c:\\test.txt",CFile::modeRead ))
    {
        ULONGLONG taille = f2.GetLength();
       char *buffer = new char[(int)taille+1]; 
    	str = buffer;
    	f2.Read(buffer,(taille+1)); 
       UINT nOctetsLu = f2.Read(buffer, (int)taille);
     
       f2.Close();
       delete buffer;
    .....
    ....
    merci de bien vouloir m'aider .

  2. #2
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Bonjour utilise la classe ifstream pour lire un fichier elle est très simple a utiliser et c'est je pense la plus utilisé pour tous ce qui est lecture et écriture de fichier texte

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <iostream>
    #include <ifstream>
    using namespace std;
    int main (void)
    {
    string maLigne;
     
    ifstream monFichier ("monFichierTexteAlire.txt");
     
    while(getline(monFichier,maLigne))
    {
    cout<<maLigne<<endl;
    }
     
     
    }

  3. #3
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    salut,

    catastrophique ton code, msahli3 ... le mélange des types de caractère (CHAR et WCHAR), tu essayes d'ouvrir un fichier déjà ouvert et j'en passe ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CStringA string;    // chaine qui va contenir le fichier - type de caractère = CHAR
    CFile file(_T("c:\\test.txt"),CFile::modeRead);  // ouverture du fichier
    ULONGLONG size=file.GetLength();    // obtention de la taille du fichier
    ASSERT(size<INT_MAX);    // au cas où ... une chaine ne peut pas contenir plus
    UINT read=file.Read(string.GetBuffer((int)size),(UINT)size);  // allocation du buffer + lecture
    string.ReleaseBuffer();    // réajustement de la taille du buffer
    file.Close();    // fermeture du fichier ou laisser le destructeur de "file" s'en charger
    @Attrox: pourquoi utiliser la S(T)L, il y a déjà tout ce qu'il faut avec les MFC ... ça alourdit les dépendances ...

    @+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci
    pour vos reponse , il reste juste un dernier truk , sur le code ta utilisé un CStringA , et je voudrai savoir prk ;et comment le faire convertir en Cstring;
    merci

  5. #5
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    CStringA est une chaine de caractères type CHAR. L'élément de base est donc l'octet
    CStringW est une chaine de caractères type WCHAR. L'élément de base est le mot (16 bits)

    CString est soit un CStringW soit un CStringA suivant que le symbole _UNICODE est défini ou pas. (ça se règle aussi dans les paramètres du projet)

    étant donné que tu cherches à lire des octets dans ton fichier, il faut utiliser un CStringA

    parce que si ton projet est compilé en Unicode (donc CString=CStringW), alors tu auras des soucis de conversion

    et tu peux très bien écrire par la suite CString=CStringA, s'il doit y avoir une conversion (parce que le projet est en Unicode), elle sera faite à la volée.

    renseignes toi bien sur les TCHAR notamment, pour bien comprendre la différence avec les type de chaine de caractères

    @+

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci pour tes réponses ,maintenant mon programme marche et j'arrive a faire ce que je voulais ,.
    a bientot.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2009, 23h14
  2. copier le contenu d'un fichier dans un autre avec séparateur
    Par sws2008 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 03/12/2008, 09h56
  3. Réponses: 3
    Dernier message: 26/04/2008, 17h58
  4. Réponses: 4
    Dernier message: 28/08/2007, 17h11
  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