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

C++Builder Discussion :

Conversion char* en date [Débutant]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Conversion char* en date
    Bonjour à tous,

    Je récupère une date dans une base de données MySQL et cette date est stockée dans un char*.

    J'aimerais mettre cette valeur dans une variable clock_t, est-ce possible ?

    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    clock_t t1;
    char* cValeur;
    cValeur=t1;
    Faut il passer par un type de variable intermédiaire ?

    Cordialement,

    Remss

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, mais pourquoi utilises-tu char* et clock_t? Avec C++Builder tu as String et TDateTime?
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    En fait j'aimerais comparé deux temps mais je ne sais pas comment m'y prendre, je pensais faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     temps = (float)(t2-t1)/CLOCKS_PER_SEC;
    Du coup quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TDateTime t1;
    String sValeur;
    sValeur= la date;
    t1.DateTimeString()=sValeur; ???

  4. #4
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Si tu veux la différence en seconde utilises SecondsBetween.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Si tu veux la différence en seconde utilises SecondsBetween.
    Est ce qu'il y un fichier d'inclusion particulier ?
    Parce que mon programme ne reconnait pas la fonction.

    Merci en tout cas pour t'es réponses !

  6. #6
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par remss02 Voir le message
    Est ce qu'il y un fichier d'inclusion particulier ?
    Oui, je t'ai mis un lien vers la doc, c'est écrit qu'il faut inclure System.DateUtils.hpp
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Oui, je t'ai mis un lien vers la doc, c'est écrit qu'il faut inclure System.DateUtils.hpp
    Oui merci j'avais essayé mais j'avais une erreur il fallait juste mettre #include <DateUtils.hpp>

    Voici ce que j'ai fais et cela fonctionne très bien !
    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
     
    TTime time1, time2;
    int time;	 
    		   if (iIndice == 5)
    		   {
    			 cValeur == myROW[5];
    			 sValeur=cValeur;
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
     
    		   }
     
    			if (iIndice == 6)
    			{
    			 cValeur == myROW[6];
    			 sValeur=cValeur;
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time2=StrToTime(sHeure); //On place l'heure d'arrivée dans time2
    			}
     
    time=SecondsBetween(time1,time2); //Comparaison
    Je te remercie de ton aide, sans toi j'aurais cherché une semaine ...

    Cordialement,

    Remss

  8. #8
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Super, juste un dernier commentaire.

    À la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			 cValeur == myROW[5];
    			 sValeur=cValeur;
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Tu peux simplifier en enlevant l'utilisation de la variable temporaire cValeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			 sValeur=myROW[5];
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Et encore plus en enlevant l'utilisation de sValeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			 sHeure=String(myROW[5]).SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Je ne recommande pas, mais tu peux aussi enlever sHeure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			 time1=StrToTime(String(myROW[5]).SubString(12,20)); //On place l'heure de départ dans time1
    Mon problème c'est que je ne fait pas confiance à bcc32 pour optimiser le code.

    Fais aussi attention. StrToTime peux lancer des exceptions.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Super, juste un dernier commentaire.

    À la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			 cValeur == myROW[5];
    			 sValeur=cValeur;
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Tu peux simplifier en enlevant l'utilisation de la variable temporaire cValeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			 sValeur=myROW[5];
    			 sHeure=sValeur.SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Et encore plus en enlevant l'utilisation de sValeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			 sHeure=String(myROW[5]).SubString(12,20); //On récupère que l'heure
    			 time1=StrToTime(sHeure); //On place l'heure de départ dans time1
    Je ne recommande pas, mais tu peux aussi enlever sHeure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			 time1=StrToTime(String(myROW[5]).SubString(12,20)); //On place l'heure de départ dans time1
    Mon problème c'est que je ne fait pas confiance à bcc32 pour optimiser le code.

    Fais aussi attention. StrToTime peux lancer des exceptions.
    Merci beaucoup, ça rafraîchit pas mal

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

Discussions similaires

  1. conversion de chaine char en date
    Par Marc_27 dans le forum DB2
    Réponses: 18
    Dernier message: 11/05/2010, 10h00
  2. Conversion char * vers wchar_t
    Par Zapan dans le forum C++
    Réponses: 4
    Dernier message: 24/02/2005, 15h56
  3. [CR] pb (concaténation/Conversion/Addition) sur date/heure
    Par marvel dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 20/12/2004, 15h31
  4. conversion String en Date (parse trop permissif)
    Par ciloulou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2004, 18h36
  5. Réponses: 3
    Dernier message: 26/05/2004, 23h03

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