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] Chaine dans un fichier txt


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par d�faut [MFC] Chaine dans un fichier txt
    Bonjour � tous !

    Pour les besoins de mon projet je dois aller chercher une chaine de caract�re qui se trouve � la 8eme ligne et au 3eme caract�re, et la stocker dans une variable.
    Du type : V=3xxx# avec xxx variable que je dois r�cup�rer.
    J'ai utilis� le code suivant :
    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
     
     char Tamp[200] ;
     FILE* fichier = NULL;
     fichier = fopen("param.DAT","r+");
     
     if (fichier == NULL)
     {
      AfxMessageBox("Le fichier param.dat doit être dans le même répertoire que l'application");
     }
     else
     {
      for(int i=1 ; i <=9  ; i++)
       fgets(Tamp,200,fichier);//aller a la 8eme ligne 
     
      for(int i=0 ; Tamp[i] != '=' ; i++)
       Tamp[0] = fgetc(fichier) ;//aller jusqu'au caract
     
      for(int i=0 ; Tamp[i] != '#' ; i++)
       Tamp[i] = fgetc(fichier) ;
     
      Seuil_PenteTQ = Tamp ;
     }
     fclose(fichier) ;
    J'obtiens bien quelquechose mais rien qui correspond avec ce que j'attends.
    Merci de me dire ce qui ne va pas ou �ventuellement une autre solution.

    Merci

  2. #2
    Membre confirm�
    Inscrit en
    Avril 2006
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par d�faut
    Edit : j'ai fait une erreur : voir mon message juste apr�s ...

  3. #3
    Membre confirm�
    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    Avril 2005
    Messages
    87
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par d�faut
    Salut,
    je crois voir deux choses :
    1)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
      for(int i=1 ; i <=9  ; i++)
       fgets(Tamp,200,fichier);//aller a la 8eme ligne
    avec ce code, tu ne recherches pas la 8 �me ligne (sauf si tes lignes ont une longueur fixe de 199 caract�res + fin de ligne). Il faut que tu recherches 7 fois les caract�res "\r\n"

    2) je pense que tu veux stocker la valeur 3xxx dans Seuil_PenteTQ. Ici, c'est l'adresse du tableau contenant la chaine de caract�res repr�sentant la valeur que tu m�morises. Il te faut extraire la valeur. Je m'orienterai vers 'strtod' ou 'sscanf' pour faire cela. edit: en ayant pris soin de rajouter le carat�re de fin de cha�ne en 'Tamp[i]' !


  4. #4
    Membre confirm�
    Inscrit en
    Avril 2006
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par d�faut
    J'avais pas fini :
    Je pense que cette solution peut marcher :


    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
     
    CStdioFile fichier;
    CString ligne_lue;
    // Ouverture du fichier dans le répertoire de l'application
    if (fichier.Open(cfd.GetPathName(),CFile::modeRead))
    {
    MessageBox("ouverture de fichier réussie",NULL,MB_OK);
    // on va jusqu'à la 8ème ligne
    For (i=0;i++;i<8)
    {
    fichier.ReadString(ligne_lue);
    }
    // on prend la chaine de caractère après le 3ème carac de la ligne
    ligne_lue.Right(ligne_lue.GetLength()-3);
    }
    fichier.Close();
    return ligne_lue;
    Remarque : mon code utilise les classes CStdioFile et CString de MFC, donc c'est mieux si tu travailles en MFC

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par d�faut
    Aymerick j'ai pas essay� ce que tu m'as dit.
    A prioris ca avait l'air quand m�me d'aller a la ligne que je lui demandai, puisque les lignes sont toutes inf�rieures a 200 caract�res et il s'arr�te en fin de cha�ne.
    Sinon c'est vrai que Seuil_PenteTQ = Tamp ; avait l'air douteux mais bon...

    sinon ca marche bien maintenant, j'ai transform� le ligne_lue.Right(ligne_lue.GetLength()-3); en :

    Seuil_PenteTQ = ligne_lue.Right(3) ;
    Seuil_PenteTQ = Seuil_PenteTQ.Left(2) ;

    pour r�cup�rer le 31 de V=31#

    Voila

    Merci beaucoup !!!

  6. #6
    Membre confirm�
    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    Avril 2005
    Messages
    87
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par d�faut
    effectivement, fgets s'arr�te sur le caract�re de fin de ligne...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Recherche chaine de caract�re dans un fichier txt
    Par 4rocky4 dans le forum D�buter
    R�ponses: 11
    Dernier message: 31/12/2010, 17h29
  2. R�ponses: 2
    Dernier message: 23/04/2009, 10h24
  3. R�ponses: 1
    Dernier message: 22/04/2009, 22h39
  4. lire, enregister & modifier une chaine enregistr�e dans un fichier ".txt"
    Par wise_mind dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 02/09/2008, 14h17
  5. R�ponses: 10
    Dernier message: 05/10/2004, 11h28

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