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 :

L'application développée sous Windows français se plante sous Windows anglais : date format


Sujet :

C++Builder

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut L'application développée sous Windows français se plante sous Windows anglais : date format
    Bonsoir,
    Mon application développée sous BCB6 tourne bien sous windows en français mais elle se plante sous windows en anglais : c'est le problème de format des dates ("DD/MM/YYYY" ou "YYYY-MM-DD").
    Ma question :
    - Comment je peux trouver le format de la date dans windows ?
    Merci pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Avant toute chose télécharger la dernière version de Builder C++ (gratuite et complète) :
    https://www.embarcadero.com/fr/produ...uilder/starter

    Sans rentrer dans le détail de votre problème il n'y a quasiment plus aucune chance que BCB6, qui date maintenant de près de 15 ans, fonctionne correctement sous Windows 10.....

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    J'ai la version 10.1, cette version n'a pas le vcl quickreport, alors je suis revenu à la version 6.
    merci pour votre réponse.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Question à poser à Barnsten pour quickreport :
    https://www.barnsten.com/
    Sinon pour les paramètres de formats de date il faut passer par TFormatSettings (sur une version récente).
    Sur les versions anciennes il doit y avoir une variable globale qui indique le format.

  5. #5
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    salut,
    la methode DatetimeToString fonctionne parfaitement pour ton usage




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    //C++Builder 6
    //.H SysUtils.hpp
     
     
     void DateTimeToString(AnsiString &Result, const AnsiString Format, TDateTime DateTime);
     
    //Version Unicode
    //.H System.SysUtils.hpp
    void __fastcall DateTimeToString(System::UnicodeString &Result, const System::UnicodeString Format, System::TDateTime DateTime)
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    Merci pour toutes les suggestions.

    J'ai pensé qu'il y avait un API ou une variable globale qui m'indiquerait le format de la date de Windows (US ou FR) car je manipule les fonctions mktime et localtime pour passer d'une date vers la structure tm ou vers une valeur en long et vice versa.
    Je dois connaître la position de l'année dans la chaine AnsiString retournée par l'appel de la fonction DateTimeToStr(Now()).
    Les formats des dates : en anglais => "YYYY-MM-DD" et en français => "DD/MM/YYYY".
    Pour le moment, pour distinguer les formats des dates, je teste le caractère '-' dans la date, si ce caractère existe => la date est en format anglais.
    Cordialement

  7. #7
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu te prends la tête pour rien
    utilise la méthode DateTimeToSystemTime(const TDateTime DateTime, TSystemTime SystemTime); pour passer de la VCL a win32 time et
    TDateTime SystemTimeToDateTime(const TSystemTime SystemTime) pour faire l'inverse

    ou alors les fonctions de Win32 https://docs.microsoft.com/en-us/win...time-functions

    mais arrête d'utiliser les fonctions antiques du c

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Pour info, il faut aussi faire attention dans le cas ou il y utilisation d'un thread, TFormatSettings est alors obligatoire.
    Mais ce n'est sans doute pas ton cas...
    Bien d'accord avec DjmSoftware pour le reste.
    J'insiste sur le fait d'utiliser et de faire l'effort s'adapter aux dernières versions de l'EDI et du langage. D'autant que maintenant que c'est gratuit (hors usage commerciale) il n'y plus d'excuses.
    En plus de quickreport bien d'autres problèmes finirons par venir se greffer....
    Il m'arrive de pester contre l'obsolescence programmée mais au bout de 15 ans il faut quand même être raisonnable.

    Yves

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    Merci pour vos conseils et interventions.
    J'ai installé la version Studio 10.1 Berlin, les composants VCL ADO sont absents dans cette version.

    Cordialement

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Il me semble que l'onglet des composants ADO a changé de nom : ils sont en tout cas présents sur la version pro 10.3 sous le répertoire dbGo (TADOConnection, TADOCOmmande, TADODataset, etc.)

    Yves

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

Discussions similaires

  1. [WD23] Architecture logicielle d'une application développée sous Windev
    Par ZeMomoDesBois dans le forum WinDev
    Réponses: 2
    Dernier message: 09/07/2018, 10h38
  2. Réponses: 8
    Dernier message: 25/10/2012, 10h51
  3. Application développée sous Delphi3
    Par GGaston dans le forum Débuter
    Réponses: 30
    Dernier message: 29/01/2012, 19h41
  4. Réponses: 7
    Dernier message: 22/08/2010, 18h10
  5. Réponses: 2
    Dernier message: 08/12/2009, 01h12

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