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 :

un souci avec fread


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut un souci avec fread
    coucou à tous
    voici le situation!
    j'ai un fichier text qui contient des infos
    06 07 A 001
    06 07 A 002
    06 07 A 003
    ses infos doivent apparaitre dans plusieur control EDIT
    j'arrive à le créer le fichier et à écrire dedans
    le problème est que quand je le lis je ne récupère pas la bonne chaine de carractère... pire encore celle que je récupère n'est pas dans le fichier("strex.cpp")???
    //l'action sur le bouton OK sauvegarde les données dans un fichier
    void CBanc_testDlg::OnOK()
    {
    // TODO: Add extra validation he
    int etat;
    fichier=fopen("C:/WINDOWS/numero_serie.txt","w+");
    etat=fwrite(str,sizeof(char),11,fichier);
    if(etat==-1)
    AfxMessageBox("problème d'écriture");
    fclose(fichier);
    }

    //génère de nouvelle donnée
    void CBanc_testDlg::OnButtondemande()
    {
    // TODO: Add your control notification handler code here

    fichier=fopen("C:/WINDOWS/numero_serie.txt","r+");

    //attribut pour récupérer l'année 06 et le mois 07
    time_t osBinaryTime;
    time( &osBinaryTime ) ;
    CTime t(osBinaryTime);
    struct tm* osTime;

    osTime = t.GetLocalTm( NULL );

    if(osTime->tm_mon<10)
    str.Format("0%d",osTime->tm_mon+1);
    else
    str.Format("%d",osTime->tm_mon+1);

    //si le fichier le fichier n'existe pas
    if(fichier==NULL)
    {
    fichier=fopen("C:/WINDOWS/numero_serie.txt","a+");

    m_editAnnee=t.Format("%y");
    m_editMois=str;
    m_editLettre="A";
    m_editNumero="001";

    }
    //sinon lire le fichier et récuperer les données avant dans proposée des nouvelles
    else
    {
    char chaineAnnee[2];
    char chaineMois[2];
    char chaineLettre;
    char chaineNumero[3];

    fread(&chaineAnnee,sizeof(char),2,fichier);
    m_editAnnee.Format("%s",chaineAnnee);
    fseek(fichier,4,0);
    fread(chaineMois,sizeof(char),2,fichier);
    m_editMois.Format("%s",chaineMois);
    fseek(fichier,7,4);
    fread(&chaineLettre,sizeof(char),1,fichier);
    m_editLettre.Format("%c",chaineLettre);
    fseek(fichier,9,7);

    if(m_editAnnee==t.Format("%y") && m_editMois==str)
    {
    fread(chaineNumero,sizeof(char),3,fichier);
    m_editNumero.Format("%s",chaineNumero);
    int num=atoi(m_editNumero);
    num++;

    if(num<10)
    m_editNumero.Format("00%d",num);
    else if(num<100)
    m_editNumero.Format("0%d",num);
    else
    m_editNumero.Format("%d",num);
    }

    }
    str.Format("%s %s %s %s\n",m_editAnnee,m_editMois,m_editLettre,m_editNumero);
    fclose(fichier);
    UpdateData(FALSE);

    }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Si ton fichier est en texte, je pense que tu devrais utiliser les fonctions texte plutôt.

    Lire le fichier ligne par ligne, puis parser les lignes comme tu veux...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    comment ça les fonctions texte?

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    fgets() pour la lecture, fputs()+fputc() pour l'écriture.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Ok ça s'est amélioré
    j'aurai besoin d'un autre petit service
    je ne vois pas pour quoi mes controles "m_editAnnee" et "m_editMois", rajoutent des caractère(06ÌÌPB) alors qu'il sont à l'initialistion vide et mes chaines ne font que 2 caractère???

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    *fleurs* *petits oiseaux* ne manquerait-il pas, par hasard, *folie furieuse* UNE PLACE POUR LE CARACTÈRE NUL TERMINAL ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    oups

    désolé
    et merci, cette fois c'est OK

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

Discussions similaires

  1. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  2. SOucis avec une reequete imbriquee
    Par Ni4k dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/03/2004, 08h56
  3. souci avec un algorithme
    Par slider16 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/03/2004, 17h17
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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