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

 Delphi Discussion :

Fichier texte extérieur pour une procédure W11 64 bits


Sujet :

Delphi

  1. #21
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 524
    Points
    13 524
    Par défaut
    Et si tu faisais l'inverse : 22/02/2024 + 301 jours = ?

    Peut-être que l'erreur (flagrante) te sautera aux yeux

  2. #22
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 193
    Points : 41 418
    Points
    41 418
    Billets dans le blog
    63
    Par défaut
    Le lundi n'est jamais mon jour (jour kiné), surtout l'après-midi.
    J'ai fini par prendre le temps de tester ce que j'ai pu écrire comme c...s en ouvrant Delphi (bon évidemment pas D6, j'aurais pu D3 mais la flemme).


    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
     
    uses DateUtils;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var d : TDate;
        moisencours, i, JoursRestants : integer;
        DatesLimite: array [1..12] of TDate;
     
        procedure chargerdates;
        const Dates ='24/01/2024,27/02/2024,21/03/2024,23/04/2024,23/05/2024,21/06/2024,'+  // j'ai changé la date de février pour test du jour de paiement 
                 '24/07/2024,23/08/2024,23/09/2024,24/10/2024,22/11/2024,20/12/2024';
            var SL : TStringList;
                I : Integer;
        begin
         SL:=TStringlist.Create;
         try
           SL.CommaText:=Dates;
           for I := 0 to 11 do
             DatesLimite[i+1]:=StrToDate(SL[i]);
         finally
           SL.Free;
         end;
        end;
     
    begin
    ChargerDates;
    Memo1.Lines.Clear;
    moisencours:=MonthOf(Date);
    for i:=1 to 12 do
     begin
       d:=Dateslimite[i];
       if (monthOf(d)>moisencours) OR (d>Date) then
        begin
          JoursRestants := DaysBetween(date,d);
           Memo1.Lines.Add(Format('Il reste %d jours jusqu''au %s.', [JoursRestants, FormatDateTime('dd/mm/yyyy',Dateslimite[i])]));
        end
        else Memo1.Lines.Add('Paiement échu le '+FormatDateTime('dd/mm/yyyy',d));
     end;
    end;
    résultat
    Paiement échu le 24/01/2024
    Paiement échu le 27/02/2024
    Il reste 23 jours jusqu'au 21/03/2024.
    Il reste 56 jours jusqu'au 23/04/2024.
    Il reste 86 jours jusqu'au 23/05/2024.
    Il reste 115 jours jusqu'au 21/06/2024.
    Il reste 148 jours jusqu'au 24/07/2024.
    Il reste 178 jours jusqu'au 23/08/2024.
    Il reste 209 jours jusqu'au 23/09/2024.
    Il reste 240 jours jusqu'au 24/10/2024.
    Il reste 269 jours jusqu'au 22/11/2024.
    Il reste 297 jours jusqu'au 20/12/2024.

  3. #23
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 453
    Points : 1 337
    Points
    1 337
    Par défaut
    Bonjour à Toutes et à tous,

    @ Andnotor, à première vue en corrigeant ceci : j'ai un autre résultat pour avant la date, jour j mais pour après la date "il reste" devrait être "Echu depuis 5 jours".

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
    d : TDatetime;
    moisencours, i  : integer;
    JoursRestants : integer;
     
    begin
    // Charger les dates depuis le fichier
     ChargerDatesDepuisFichier(chappli + 'dates.txt');
     
    moisencours:=MonthOf(now);
    for i:=1 to 12 do
     begin
       d:=Dateslimite[i];
       if monthOf(d)>= moisencours then
        begin
          //JoursRestants := DaysBetween(Now, d);
          JoursRestants := DaysBetween(Now, DatesLimite[MoisEnCours]) ;
          if  JoursRestants=0
             then Edcalcul.Text := 'Jour de paiement'
             else  Edcalcul.Text := Format('Il reste %d jours jusqu''au %s.', [JoursRestants, FormatDateTime('dd/mm/yyyy',Dateslimite[Moisencours])]);
        end
        else Edcalcul.Text := 'Paiement échu';
     end;
    end;
    @ SergioMaster, merci pour ton temps, je testerai cet après midi après mon baxter sinon demain matin.

    Bonne journée.

    @+,

    cincap

  4. #24
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 453
    Points : 1 337
    Points
    1 337
    Par défaut D6 et Windows 11 64 bits
    Bonjour à toutes et à tous,

    @ SergioMaster, je viens de tester avec les dates reprises dans une variable "Const", je suppose que l'on pourra utiliser le fichier "Dates.txt" ?

    Le résultat obtenu à la date de ce jour dans le Tmemo est uniquement ceci :

    Il reste 177 jours jusqu'au 23/08/2024.
    Il reste 208 jours jusqu'au 23/09/2024.
    Il reste 239 jours jusqu'au 24/10/2024.
    Il reste 268 jours jusqu'au 22/11/2024.
    Il reste 296 jours jusqu'au 20/12/2024.
    Décidément apparemment cela fonctionne sur ton Pc.

    Je chercherai encore tantôt en vérifiant sur une application test seine.

    @+,

    cincap

  5. #25
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 193
    Points : 41 418
    Points
    41 418
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par cincap Voir le message
    @ SergioMaster, je viens de tester avec les dates reprises dans une variable "Const", je suppose que l'on pourra utiliser le fichier "Dates.txt" ?
    Bien sûr, c'est juste que je ne voulais pas ouvrir un fichier

  6. #26
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 453
    Points : 1 337
    Points
    1 337
    Par défaut
    @ Andnotor,

    Ta solution me parait très bien et en testant voici les erreurs constatées sur :

    [Erreur] Unit1.pas(67): Expression constante attendue
    [Erreur] Unit1.pas(68): Expression constante attendue
    [Erreur] Unit1.pas(69): Expression constante attendue
    [Erreur fatale] Project1.dpr(6): Impossible de compiler l'unité utilisée 'Unit1.pas'
    Ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      case CompareDate(Next, Date) of
          LessThanValue    : Edcalcul.Text := Format('Paiement échu depuis %d jour(s)', [Days]);
          EqualsValue      : Edcalcul.Text := 'Paiement aujoud''hui';
          GreaterThanValue : Edcalcul.Text := Format('Paiement dans %d jour(s)', [Days]);
        end;
    @ SergioMaster merci de ta réponse et pour les valeurs dans Tmemo c'est voulu que le calcul de ce jour commence au 23/08/2024 ?.

    @+,

    cincap

  7. #27
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 524
    Points
    13 524
    Par défaut
    Ces trois constantes ne sont pas déclarées dans Types sous D6 ?

    Mais tu peux les remplacer par respectivement -1, 0 et 1.

  8. #28
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 453
    Points : 1 337
    Points
    1 337
    Par défaut
    @ Andnotor, merci de ta correction, cela fonctionne correctement en changeant l'heure système du Pc pour test, chapeau bas pour ton aide.

    Je vais refaire une petite fiche pour afficher le fichier "Dates.txt" et pouvoir le mettre à jour en 2025 si je suis toujours la !

    Merci à tous pour les solutions et votre patience.

    Je ferme ce topic.

    @+,

    cincap

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/10/2009, 13h32
  2. Réponses: 4
    Dernier message: 24/11/2006, 17h03
  3. Réponses: 2
    Dernier message: 19/08/2006, 12h47
  4. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  5. Réponses: 2
    Dernier message: 16/12/2004, 15h33

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