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 :

[MFC] extraction depuis .txt en CString


Sujet :

MFC

  1. #1
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut [MFC] extraction depuis .txt en CString
    Alors j'ai beau cherché j'ai reussi à trouver uniquement une partie de ce dont j'ai besoin.


    Alors j'ouvre un fichier .txt ensuite je voudrais extraire un mot contenu grace au séparateur "|",
    pour le moment tout c'a je sais faire,
    mon probleme reside dans le faite que je voudrais ensuite affecter ma valeur extraite
    dans une variable de type CString.

    En cherchant dans la FAQ j'ai trouvé la fonction strTok je l'ai deja utilisé en c, elle semble convenir cependant elle me renvoi un resultat sous la forme d'un pointeur de char or je voudrais le recuperer sous la forme d'un CString.

    Voila j'espere avoir été assez explicite et je vous remercie pour l'aide que vous pourrez m'aporter.

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    regarde du coté des méthodes CString::Left, CString::Right, CString::Find, CString::ReverseFind.

  3. #3
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    salut,
    je ne sais pas si c bien ca oui ke j ai tort mais bon
    essaier de fiar comme ca
    CString variableDest;
    variableDest.Format("%s",variableSource);

    j'en sais pas bcp.

  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
    Par défaut
    Citation Envoyé par moulefrite
    Alors j'ai beau cherché j'ai reussi à trouver uniquement une partie de ce dont j'ai besoin.


    Alors j'ouvre un fichier .txt ensuite je voudrais extraire un mot contenu grace au séparateur "|",
    pour le moment tout c'a je sais faire,
    mon probleme reside dans le faite que je voudrais ensuite affecter ma valeur extraite
    dans une variable de type CString.

    En cherchant dans la FAQ j'ai trouvé la fonction strTok je l'ai deja utilisé en c, elle semble convenir cependant elle me renvoi un resultat sous la forme d'un pointeur de char or je voudrais le recuperer sous la forme d'un CString.

    Voila j'espere avoir été assez explicite et je vous remercie pour l'aide que vous pourrez m'aporter.
    et bien tu t'es arreté en chemin dans tes recherches ,
    http://c.developpez.com/faq/vc/?page...ons#MakeStrtok

  5. #5
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    j'avais trouvé ce code cependant quand je fai un AfxMessageBox il m'affiche le bon resultat mais aussi des message vide.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    CString CStringTok(const char *szToken,const char *szDelimit,bool &rbEndParse)
    {
       CString strOrg,str;
       static const char *pszOrg=NULL;
     
       ASSERT(szDelimit!=NULL);
     
       if(szToken)
       {
           pszOrg=szToken;
           rbEndParse=false;
       }
       if(!pszOrg)
       {
            rbEndParse=true;
            return "";
       }
     
       strOrg=pszOrg;
       int nPos=strOrg.Find(szDelimit);
       if(nPos!=-1)
       {
          str=strOrg.Left(nPos);
          pszOrg+=(nPos+strlen(szDelimit));
       }
       else
       {
          str=strOrg;
          pszOrg=NULL;      
       }
       return str;
    }
    voici le code de la fonction fourni dans la FAQ

    voici un exemple de fichier txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    100,30,800,50,200,10,20,30,10,20,20,60,-1,30 | ABOUTIE

    et now ma methode permettant d'ouvrir un fichier .txt
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    void CGrafic::AnalyseFichierCSV()
    {
        FILE *f ;
        char *p, tLigne[128] ;
        int index ;
        int iVal,iCumulTemps ;
        CString test;
     
        nbLigneCSV = 0 ;
        if (strCSVName!="")
        {
            f = fopen(LPCSTR(strCSVName),"r") ;
     
            if (f)
            {
                iCumulTempsMax = 0 ;
                do
                {
                    p = fgets(tLigne,sizeof(tLigne),f) ;
                    CString strTemp=p;
     
                     bool bEndParse;
       CString strWord =CStringTok(strTemp,"|",bEndParse);
    //AfxMessageBox(strWord);
     
       while(!bEndParse)
       {
          // Work
          // ..................
          AfxMessageBox(strWord);
          // Get Next Token
          strWord = CStringTok(NULL,"|",bEndParse);

    le but de ce code serai d'uniquement extraire le mot "ABOUTIE"
    cependant avec le messageBox il me le renvoi bien mais continue à m'afficher des valeurs erronées

    donc voila je souhaiterai uniquement recuperer une seul valeur

Discussions similaires

  1. [Windev 11] Extraction fichier .txt
    Par Xsara 167 cv dans le forum WinDev
    Réponses: 5
    Dernier message: 20/11/2007, 16h05
  2. [MFC/vs2005] Comment enregistrer un CString dans CFile?
    Par hiko-seijuro dans le forum MFC
    Réponses: 4
    Dernier message: 17/05/2006, 08h58
  3. Extraction information *.txt vers une base de données
    Par Mr Capone dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 11h26
  4. [INTERBASE] Extraction vers txt d'un blob
    Par FORESTIER dans le forum InterBase
    Réponses: 6
    Dernier message: 09/11/2004, 14h20
  5. [MFC][WinCE] Longueur maxi de CString?
    Par Sunny dans le forum MFC
    Réponses: 3
    Dernier message: 28/01/2004, 14h40

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