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

Bases de données Delphi Discussion :

Pb Enregistrement des date avec Delphi6


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Pb Enregistrement des date avec Delphi6
    Bonjour,
    Débutant en autodidacte en programmation, je me suis lancé sur Delphi6 Perso.
    La base de donnée que j'utilise est Formula one fournie avec l'editeur Delphi.

    Ma manipulation:
    Je sauvegarde mes feuilles du tableur dans des fichiers texte ligne par ligne. Or, à la sauvegarde, les cellules corespondant aux dates ne sont pas enregistrées au format saisie ( jj/mm/aaaa ) mais par la valeur correspondant soit 22/06/1968 donne 25011.
    La fonction utilisée pour la lecture et l'écriture de la cellule est
    NomTableau.TextRC[nLigne,nColonne]

    Mon Probleme:
    A la relecture du fichier pour réinitialiser le tableau, tous ce passe correctement sauf pour les dates. L'affichage ce fait par la valeur 25011 au lieu de 22/06/1968.
    Par contre si dans le fichier texte obtenu je modifie manuellement la valeur 25011 par son correspondant 22/06/1968, la date s'affiche correctement dans mon tableau à la lecture du fichier.

    Ma question:
    Comment faire pour, soit enregistrer la date au format jj/mm/aaaa ou écrire dans le tableau la date à ce format à partir de ca valeur ?

    J'espere avoir été assez claire et je tiens mes ligne de programation à disposition si nécessaire.

    Merci par avance

    Philippe MPH

  2. #2
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut formater la date en string par exemple
    DateToStr(myDate)

    avant de l'enregistrer dans ton tableau Excel.

    cordialement

    André

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse André,
    Je vais essayé.

    Il y a quelque chose que je ne comprend pas, tous les champs du tableau, ne sont il pas de type WideString ? Dans ce cas, pourquoi les dates sont elles gerer comme des TDateTime (semble-t-il) lors de la sauvegarde est que lors de l'écriture dans les champs du tableur seul des string sont accepté ?

    Autre question, Formula one et excel c'est la même base ?

    Je souhaite rectifier une erreur qui à peut être son importance dans ma présentation, ma version Delphi n'est pas la Pro mais l'édition Personnel

    Philippe MPH

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Formula one TF1Book peut fonctionner pour lire et écrire un fichier Excel (surement d'anciens format entre 95 et 2003) SANS qu'Office soit installé

    Ils ont tout recodé !
    De plus, il me semble que les formules ne sont actualisés QUE lorsque Excel ouvre le fichier !

    Et c'est n'est pas une Base de Données, juste un outil pour utiliser un fichier Excel
    Ne pas confondre avec ADOConnection couplé avec ACCESS,
    là on peut parler de Base de données

    TF1Book est remplacé aujourd'hui par TMS FlexCell

    N'ayant pas utilisé TF1Book depuis 1999 et n'avoir pas bossé avec les Dates, je n'ai pas de réponse précises !

    25011 c'est le nombre de jour entre le 30/12/1899 et le 22/06/1968
    Utilise DateToStr pour convertir ton TDateTime en Chaine uu FormatDateTime
    Il faut utiliser le format de Date de Excel, j'ignore si en interne il gère que l'Anglais (comme pour le texte des Formulas) et s'adapte aux options régionales en traduisant formule et date au bon format (cela me semblerait être une approche plus portable)

    Pense qu'il existe FormattedTextRC, NumberRC, TypeRC
    En jouant avec autre chose que TextRC ou EntryRC tu pourrais avoir de meilleur résultat
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci ShaiLeTroll pour ton intervention qui m'éclair un peu plus sur cette outil.
    Je vais essayer de tester tous cela.
    Pour ce qui est des dates, il semble qu'il gere la format du mon PC soit le Francais.

    Pensez vous que je puisse arrivé à quelque chose sans faire appelle à une base de données que je n'ai pas ou serait il préfèrable que je m'oriente sur une StringGrid1 que je ne connais pas mais j'apprendrai ?

    Pour info, mon tableau a pour role de gérer mes comptes en banque. Une ligne par opération et pour les colonnes il y a Date, Recette, Dépense et Commentaire.

    Philippe MPH

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu peux aussi faire une application VBA directement dans ton fichier Excel !

    Personnellement, j'en suis encore au stylo et la feuille de papier pour gérer ça !
    En tant que professionnel, j'ai des difficultés à donner des solutions faisable pour un amateur surtout avec un si vieux Delphi
    En fait, je ne vois pas l'utilité de Delphi par rapport à l'utilisation directe de Excel dans ton cas

    Excel est effectivement, très pratique, mais pense que si tu utilises un Office récent, il faudra veiller à conserver un format compatible avec F1Book
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Solution trouvée
    Bonjour,

    En fait pour garder le formatage défini dans le tableau, lors de l'écriture dans une cellule il faut utiliser EntryRC qui renvoie une valeur qui est formatée par la cellule et non TextRC qui renvoie un WideString.

    Voici le petit projet qui résume ma recherche pour ceux que cela interesse.
    Page1.pas

    Pour ce qui est des dates, il semble qu'il gere la format du mon PC soit le Francais.
    Je rectifie, la gestion des dates est effectivement en anglais

    Par contre, dans mes recherches j'ai trouvé une solution plus simple pour la sauvegarde et la lecture de fichier des tableaux fourni par l'objet F1Book lui même.
    Write(Const pPathName:WideString;FileType:Smallint);
    et
    Read(Const pPathName:WideString;pFileType:Smallint);
    Pour plus d'info sur ces 2 procedure voir http://www.developpez.net/forums/d13...etypesmallint/

    Merci à tous ceux qui ont passé du temps sur mon probleme.

    Bonne journée à tous.
    Philippe MPH

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Question de présentation
    Rebonjour,

    Comment fait on pour :
    Dans la citation apparaisse le nom de la personne que l'on cite ?
    Que les lignes de programmation apparaissent dans un cadre ?

    Philippe MPH

  9. #9
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Meyer Phil Voir le message
    Rebonjour,

    Comment fait on pour :
    Dans la citation apparaisse le nom de la personne que l'on cite ?
    Que les lignes de programmation apparaissent dans un cadre ?

    Philippe MPH
    s'obtient grâce à l'enrichissement de la balise citation : [QUOTE=Meyer Phil;7481009] (on peut omettre le n° du post pour ne citer que l'auteur)

    Pour mettre la balise code, il faut utiliser le bouton # de la barre d'outils. Pour un code dans un autre langage, on peut forcer la coloration syntaxique à utiliser :
    [CODE=SQL]SELECT * FROM matable[/CODE]
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM matable
    plus lisible que celle du forum courant (sauf si on est sur le forum SQL !)
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

Discussions similaires

  1. Format des date avec webviewer
    Par zambizi dans le forum BIRT
    Réponses: 2
    Dernier message: 30/06/2007, 17h01
  2. Peut-on trier des dates avec le quiksort ?
    Par relena93 dans le forum Pascal
    Réponses: 19
    Dernier message: 28/06/2007, 12h01
  3. Saisie des dates avec delphi 7 et oracle 9
    Par miwbath2007 dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2007, 15h20
  4. [MySQL] le format idéal pour stocker des dates avec l'heure
    Par Philoulheinz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/02/2007, 21h53
  5. Comment comparer des dates avec la procédure assertEquals de JUNIT ?
    Par andrianiaina dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/01/2007, 18h31

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