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 :

récupérer une date dans une chaîne


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut récupérer une date dans une chaîne
    bonjour à tous

    je tourne en rond depuis plusieurs jour pour tenter de récupérer une date sous forme de chaîne de caractère
    malgré mes recherches dans les facs, je n'es pas trouvé une solution simple pour convertir mon format date en string
    voici comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SYSTEMTIME st;
        GetLocalTime(&st);
    WORD Year;
    WORD Month;
    WORD Day;
    en débuggage, Year,Month et Day sont parfaitement renseignés mais je souhaiterait les convertir en string
    comme apparement je ne pense qu'au premier degré, j'ai pensé qu'en faisant
    CString date = st.wDay;
    ou
    CString date = Day
    je récupérait la valeur de Day dans une string (date)
    je n'ai aucun pb de compilation mais je ne récupère rien dans date

    je travaille avec Microsoft eMbedded Visual C++ pour un windows CE

    qu'est ce que je fais pas bien?
    quelqu'un pourrait m'aider ?

    merci d'avance

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    CString en c ?
    Vous n'êtes pas sur le bon forum...

    En c, on peut convertir un entier en chaine avec itoa ou sprintf.

    Cela dis, la classe CString propose certainement une méthode adaptée pour ça (genre CStringT::Format).

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Ici le MSDN t'expliquera tout

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut récupérer une date dans un chaîne
    bonjour et merci de vos réponses diligentes

    j'avais déjà essayé après avoir consulté la MSDN un code comme celui ci :

    CTime t = CTime::GetCurrentTime();
    CString date =t.Format( "%A, %B %d, %Y" );

    mais j'ai une erreur de compilation
    quand je tape t. il me promose bien "format" mais à la compilation j'obtient le message suivant :
    error C2039: 'Format' : is not a member of 'CTime'
    j'ai pensé au début qu'il me manquerait un fichier .h spécifique à CTime mais je ne l'ai pas trouvé
    suis je toujours sur une mauvaise piste ?
    merci

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Peut-être que ta version de MFC est trop vieille pour posséder ces fonctions?
    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.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    On parle bien de cette classe et de cette méthode (voir lien)?
    http://msdn.microsoft.com/en-us/library/29btb3sw.aspx

    Si oui:
    Requirements
    Header: atltime.h

    Il y a quoi dans votre fichier "atltime.h".
    Il y a peut-être une condition de compilation autour de la définition de la méthode Format, non?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il semblerait que CTime::Format() soit disponible même sur une vieille version de CTime.
    Par contre, assure-toi que tu lui passes bien une chaîne de TCHAR:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CString date =t.Format( _T("%A, %B %d, %Y") );
    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.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut récuperer une date en chîne de caractère
    merci pour les réponses, mais j'ai exactement la même erreur :

    j'ai essayé :

    CString date =t.Format(_T( "%A, %B %d, %Y" ));

    'Format' : is not a member of 'CTime'

    merci

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Pouvez-Vous répondre à mes 3 questions, SVP ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    @bacelar: Atltime.h, c'est pour CTime dans les versions récentes de MFC (Au moins MFC 7, la version qui a apporté CStringT).
    La classe CTime de MFC 6 est déclarée dans <afx.h>

    @mymeal: Quelle est ta version de eMbedded Visual C++ ?
    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.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut récupérer une date dans une chaîne de caractère
    bonjour Médinoc

    ma version de Microsoft eMbedded est la 4.0

    merci de conseiller un petit débutant comme moi

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Eh bien, il faut croire que EVC4 possède une version assez limitée de MFC...
    Peut-être peux-tu convertir en time_t puis utiliser strftime()...
    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.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    re bonjour Médinoc

    j'ai bien essayé ton lien vers la msdn qui me dirige vers GetDateFormat() ou GetTimeFormat() mais je n'arrive toujours pas à mes fin (mauvaise code surement !!)
    j'ai également essayé avec LPCTSTR sans plus de succès
    help
    merci

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    J'ai souvent "updaté" une version d'une bibliothèque en utilisant le code source de la version la plus récente de celle-ci.
    Si votre version des MFC est limitée (à vérifier avec le .h de EVC4), vous pouvez toujours voir le code source de la version actuel. Pour du code de formatage, il y a de bonne chance qu'il n'ait pas d'adhérence avec le reste de la bibliothèque.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    bonjour à tous

    avant de reprendre contact avec vous, j'ai essayé de trouver dans différents forums et toutes les msdn possibles et imaginables, je n'arrive pas à solutionner mon problème

    les bouts de codes qui marcheraient le mieux à mon avis sont ceux ci-dessus qui me ramènent à l'erreur :
    'Format' : is not a member of 'CTime'
    comment updater une version de bibliothèque comme suggère bacelar en espérant trouver une ou 'format ' serait "member" de Ctime ?
    sinon, je suis ouvert à toute suggestion
    j'ai pensé un moment récupérer la valeur contenu dans Ctime dans un 'char'
    ca marche
    mais récupérer le char en string c'est autre chose
    j'avoue que je commence à desespérer

    merci d'avance

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Dans une version des MFC, la classe CTime contient la méthode Format.
    Il suffit de récupérer le code de cette méthode et de le copier dans une classe "MyCTime", par exemple, dérivant de CTime.
    Il suffira d'utiliser le constructeur par copy de CTime dans le constructeur de "MyCTime" pour convertir une instance de CTime en "MyCTime".

  17. #17
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Points : 48
    Points
    48
    Par défaut
    CString date;
    SYSTEMTIME st;
    GetSystemTime(&st);
    date.Format(_T("%02d%02d%02d%02d%02d%02d"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);

Discussions similaires

  1. [SP-2010] récupérer les terme d'une colonne d'une liste dans une autre liste
    Par Noruk dans le forum SharePoint
    Réponses: 2
    Dernier message: 09/02/2015, 18h15
  2. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 11h10
  3. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 16h31
  4. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

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