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

Lazarus Pascal Discussion :

Problème de conversion de chaîne en date [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 388
    Points : 226
    Points
    226
    Par défaut Problème de conversion de chaîne en date
    Bonjour,
    Je viens de delphi 4 sous windows xp et je cherche à me reconvertir sous linux et lazarus, mais la chose n'est pas simple. Aujourd'hui mon problème est la conversion d'une variable string chargée par une date du genre '19/07/2008' que je veux convertir en format date pour ensuite reconvertir en nombre 39648. Sous delphi je réalisais cette opération complète avec la ligne de commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MCODEDATE:=FloatToStr(StrToDate('19/07/2008');
    et je retrouvais le nombre 39648 dans MCODEDATE
    j'ai modifié cette ligne de commande pour séparer les 2 conversions et j'ai trouvé que c'est la commande StrToDate('19'07/2008') qui bloque, mais je ne vois pas pourquoi.
    Merci de votre aide

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 963
    Points : 59 643
    Points
    59 643
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    J'ai testé sur Free Pascal (mais pas sous Linux) et j'obtiens bien le résultat escompté.
    L'erreur pourrait venir de la date elle-même : ce pourrait être 'MM/DD/YYYY' (format anglo-saxon) au lieu de 'DD/MM/YYYY'.

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 388
    Points : 226
    Points
    226
    Par défaut
    merci pour avoir cherché, je crois que j'ai trouvé pourquoi il semble que le problème vient de la déclaration de la variable que j'utilise à la place de la date '19/07/2008' elle doit être déclarée en TDateTime et pas en String, déclaration qui sauf erreur de ma part ne posait pas ce problème sous delphi 4.
    Encore merci
    Un complément d'information cette manip je l'utilise pour pouvoir indexer sur la "valeur" des dates chose que je ne sais pas faire avec le format date.

  4. #4
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 388
    Points : 226
    Points
    226
    Par défaut conversion de chaîne en date
    Bonjour,
    Je croyais avoir résolu mon problème de date récupérer dans un fichier texte sous lazarus mais ce n'est pas le cas, donc je repose mon problème.
    Sous delphi 4 j'extraie d'un fichier texte la date d'une opération bancaire j'ai donc dans ma variable MDATE de type string une valeur
    par exemple : '20/07/2008' cette valeur je la transforme au format date avec la commande StrToDate(MDATE) et puis pour pouvoir déclarer cette valeur comme index d'une table dbase 4 ou 5 je retransforme cet dernier résultat je modifie ma première commande pour donner une commande globale :
    FloatToStr(StrToDate(MDATE) et celà fonctionne sous Delphi 4.
    Comme je passe progressivement sous linux et lazarus j'ai voulu adapter mon programme avec la commande ci-dessus mais celà ne fonctionne pas.
    J'ai cru à un moment à un problème de déclaration de type de variable mais je ne trouve pas.
    Alors un peu d'aide me serait utile, merci d'avance.

  5. #5
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 388
    Points : 226
    Points
    226
    Par défaut
    Rebonjour,
    Suite de mes essais concernant le problème de conversion de chaîne en date sous lazarus le problème vient situé sous linux car sous xp la copie du module incriminé depuis delphi 4 fonctionne, la même sous linux fedora donne via l'évaluateur de l'EDI me répond à la commande evaluer de StrToDate(MDATE), MDATE qui contient par exemple '01/02/2008' le message d'erreur suivant :
    no symbol "StrToDate" in current context qui semble vouloir me dire (vu mes connaissances en Anglais très faibles) que la commande n'est pas trouvé ou utilisable dans le contexte.
    En complément sous xp l'exécution du programme m'a réclamé de trouver datei.inc
    Voila les dernières infos
    Si pour le format de la date j'ai à un moment ajouté, en début de programme sous Linux, la commande ShortDateFormat:='DD/MM/YYYY';
    A+

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 963
    Points : 59 643
    Points
    59 643
    Billets dans le blog
    2
    Par défaut
    Attention, par défaut le caractère séparateur dans une date est '-' et non '/', quelle que soit la définition de ShortDateFormat.
    Il faut redéfinir DateSeparator.

  7. #7
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 388
    Points : 226
    Points
    226
    Par défaut
    Encore merci pour l'information sur le problème des séparateurs, n'ayant jamais eu ce problème sous xp je ne connaissais pas la commande DateSeparator.
    Je me suis aperçu que le format de mon environnement linux avec gnome me donnait suite à une commande me mise en forme de la date système un format du genre 21-07-2008, ce qui est la source de mon problème de traitement des dates lues dans le fichier bancaire au format texte.
    Encore merci

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

Discussions similaires

  1. [VxiR2] Problème de conversion de Chaîne en date
    Par zimit dans le forum Webi
    Réponses: 4
    Dernier message: 03/11/2009, 16h31
  2. Réponses: 0
    Dernier message: 12/12/2008, 14h16
  3. Réponses: 1
    Dernier message: 15/05/2006, 22h22
  4. [Crystal reports Version 8.x] Conversion Type chaîne en date
    Par Audrey Stelle dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2005, 14h58
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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