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

Langage Delphi Discussion :

Comment écrire la date et l'heure actuelles dans la base de registres ?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut Comment écrire la date et l'heure actuelles dans la base de registres ?
    Bonjour,
    J'ai un petit soucis avec la base de registre: je veux que lorsque j'execute mon petit executable, il va lire dans l'horloge système, puis ecrire l'heurre lu dans la base de registre, clé :"HKCU/Software/Microsoft/Macle",
    mais avec le rajout de une minute de plus, et sous format:Donc, si l'heure système était 2005.08.30 16:41:21, il rajoute 1 minute:
    Je vous remercie beaucoup!

  2. #2
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Tu as un début de réponse dans la faq
    Comment encoder/décoder une date ou un temps ?
    mais travaille plus avec un TDateTime

    Après reflexion (de ta part), je pourrais te donner une réponse !

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 7 002
    Points
    7 002
    Par défaut
    Sinon, regarde FormatDateTime.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre du Club

    Inscrit en
    Décembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 52
    Points : 63
    Points
    63
    Par défaut
    Tu as aussi l'API GetSystemTime qui te récupère l'heure GMT dans un enregistrement TSystemTime:
    -Heure
    -Minutes
    -Secondes
    -Jour
    -...

    Tu pourra donc travailler ensuite sur cet enregistrement pour modifier ta date

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Ouauw!!
    Tout ça a l'air très jolie, mais qq1 pourra-t-il me faire un exemple pratique, svp?

  6. #6
    Membre du Club

    Inscrit en
    Décembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 52
    Points : 63
    Points
    63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var Heure : TSystemTime;
    begin
      //Tu récupere la date et l'heure
      GetSystemTime(Heure);
      //Tu ajoute +1 a ton heure
      Heure.wHour := Heure.wHour+1;
    Bon je t'ai fait le début
    Il faut que tu récupère le décalage horaire (et oui heure gmt)
    Et que tu fasse ton insertion dans la base

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 7 002
    Points
    7 002
    Par défaut
    Bin, vite fait, ca donne un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var
       Reg: TRegistry;
    begin
       Reg := TRegistry.Create;
       try
          Reg.RootKey := HKEY_CURRENT_USER;
          if Reg.OpenKey('Software/Microsoft/Macle', False) then
          begin
             Reg.WriteString('MaValeur', FormatDateTime('yyyy.mm.dd hh:nn:ss', Now));
             Reg.CloseKey;
          end;
       finally
          Reg.Free;
       end;
    N'oublie pas d'ajouter Registry dans tes uses.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Oueh!
    Ca a l'air très correct, mais je ne vois aucune ligne écrite dens le registre...Ni lorsque la clé "macle" existe, ni si elle n'existe pas!

  9. #9
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    question ?
    C'est volontaire d'avoir voulu changé le format de la date ?
    2005.08.30 16:42:21 au lieu de 2005/08/30 16:42:21

  10. #10
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Bon, je ne respecte pas tout à fait ton cahier des charges sur le le type de la variable enregistrée car l'information reste exploitable facilment en tant qu'heure.
    Le code est facilement modifiable pour etre conforme à tes besoins mais bon...

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    uses
      DateUtils, Registry;
     
    procedure Enregistrer(DateTime: TDateTime);
    var Registry: TRegistry;
    begin
      Registry := TRegistry.Create;
      try
        Registry.RootKey := HKEY_CURRENT_USER;
        Registry.OpenKey('Software\Microsoft\Macle', True);
        Registry.WriteDateTime('DateTime', DateTime);
        Registry.CloseKey;
      finally
        Registry.Free;
      end;
    end;
     
    function Ouvrir: TDateTime;
    var Registry: TRegistry;
    begin
      Registry := TRegistry.Create;
      try
        Registry.RootKey := HKEY_CURRENT_USER;
        Registry.OpenKey('Software\Microsoft\Macle', False);
        Result := Registry.ReadDateTime('DateTime');
        Registry.CloseKey;
      finally
        Registry.Free;
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    var DateTime: TDateTime;
    begin
      // recuperation de la date
      DateTime := Now;
      ShowMessage( DateTimeToStr(DateTime) );
     
      // incrementation de la date
      DateTime := IncMinute(DateTime,1);
      ShowMessage( DateTimeToStr(DateTime) );
     
      Enregistrer(DateTime);
     
      TimeSeparator := ':';
      DateSeparator := '.';
      ShowMessage( DateTimeToStr(Ouvrir) );
     
      Application.Terminate;
    end;

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    J'y suis prèsque...
    La clé est bien crée dans la base de registre et une valeur "datetime", mais c'est une valeur binaire, codée. J'ai besoin d'une "string".

  12. #12
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    regarde ce que dit lung

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Merciii les gars, c'est résolu!!

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Encore une petite question:
    POur ecrire une nouvelle valeur string dans "maclé": par ex. pour l'heure actuelle c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reg.WriteString('MaValeur', FormatDateTime('yyyy.mm.dd hh:nn:ss', Now));
    mais pour dire :
    "Lundi prochain"
    C'est une enigme pour moi...
    Donc, comment ecrire "Lundi prochain, ou...tous les lundis ?"

    Merci d'avance.

  15. #15
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 7 002
    Points
    7 002
    Par défaut
    Citation Envoyé par kikica
    mais pour dire :
    "Lundi prochain"
    C'est une enigme pour moi...
    Donc, comment ecrire "Lundi prochain, ou...tous les lundis ?"
    Tu veux écrire la chaine "lundi prochain", ou la date du prochain lundi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reg.WriteString('MaValeur', 'Lundi Prochain');
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Mais la date, bien sûr!
    Désolé pour cet malentendu...

  17. #17
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 7 002
    Points
    7 002
    Par défaut
    Pour trouver le prochain lundi, regarde l'aide de DayOfTheWeek et de Tomorrow, par exemple.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Oui, mais j'obtiens les chiffres 1-7. Comment traduire cette chiffre en date, par ex. lundi prochain
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    showmessage ('lundiprochain = '(inttostr(variable)));

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    En effet, si j'ai bien compris, tu veux calculer la date du prochain lundi, c'est ça ?

Discussions similaires

  1. ajouter la date et l'heure actuel dans une fenêtre qui contient un tableau datafile
    Par med31075 dans le forum Interfaces Graphiques en Java
    Réponses: 13
    Dernier message: 09/03/2014, 13h10
  2. [XL-2003] Comment enlever 2 heures à la date et l'heure actuelle ?
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2013, 14h25
  3. comment comparer une date et une heure ?
    Par developpeur62 dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/11/2006, 10h04
  4. Comment tronquer une date (supprimer les heures)
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 27/01/2006, 15h58
  5. [c#] comment récuperer la date et l'heure en cours
    Par juloul dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/10/2005, 16h43

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