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

VBScript Discussion :

Modification ancien fichier .vbs Win11 64bits !


Sujet :

VBScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut Modification ancien fichier .vbs Win11 64bits !
    Bonjour à toutes et à tous,

    J'aimerai modifier ce code pour charger un fichier texte avec déjà les dates par défaut que l'on pourra modifier suivant les années plutôt que de les renseigner en dur dans le code (t).

    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
     
    Dim lecture
     
    Set lecture=CreateObject("sapi.spvoice")
     
    lecture.rate=1
    lecture.volume = 100
     
    'Pour 2025 
    dim MesDate(12),TheMois
     
    For t = 1 to 12
            select case t               
                    Case 11: MesDate(t) = DateSerial(2025,int(t),21)
                    Case 1,2,3,7,10: MesDate(t) = DateSerial(2025,int(t),24)
                    case 8: MesDate(t) = DateSerial(2025,int(t),22)
                    case 4,5,6: MesDate(t) = DateSerial(2025,int(t),23)
                    Case 12: MesDate(t) = DateSerial(2025,int(t),19)
     
    end select
    next
     
    'exemple d'utilisation pour le mois en cours
    TheMois = Month(Now)
     
    lecture.speak "Plus que " & DateDiff("d",now,MesDate(TheMois)) & " Jours"  & vbCrlf & " Avant de toucher ma pension"
    Fichier texte que l'on pourra modifier :

    Janvier 24/01/2025

    Février 24/02/2025

    Mars 24/03/2025

    Avril 23/04/2025

    Mai 23/05/2025 + Congés payé

    Juin 23/06/2025

    Juillet 24/07/2025

    Août 22/08/2025

    Septembre 23/09/2025

    Octobre 24/10/2025

    Novembre 21/11/2025

    Décembre 19/12/2025
    Et enfin pour le mois de mai ajouter ceci "Avant de toucher ma pension et mes congés payés".

    En vous remerciant d'avance,

    @+,

    cincap

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Je simplifiais le fichier .TXT comme ceci
    Citation Envoyé par Data.txt
    24/01/2025
    24/02/2025
    24/03/2025
    23/04/2025
    23/05/2025
    23/06/2025
    24/07/2025
    22/08/2025
    23/09/2025
    24/10/2025
    21/11/2025
    19/12/2025
    et le code pourrait être
    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
     
    Function RecupFichier(CheminNomDuFIchier)
    	Dim oFso, f
    	Set oFso = CreateObject("Scripting.FileSystemObject")
    	 'Ouverture et lecture et découpe par ligne du fichier
    	Set f = oFso.OpenTextFile(CheminNomDuFIchier, 1)
            'recuperation d'un tableau de x lignes
            RecupFichier = split(f.ReadAll,vbnewline)
            f.close
            set f = nothing
            set oFso = nothing
    End Function
     
     
    Dim lecture, MesDate, FinCommentaire, TheMois
     
     
    MesDate = RecupFichier("C:\MesProgs\En VBScript et HTA\Lire fichier sortie tableau de lignes\Data.txt")
     
    if Month(Now)=5 then
            FinCommentaire = " Avant de toucher ma pension et mes congé payé"
            else
            FinCommentaire = " Avant de toucher ma pension"
    end if
     
    'exemple d'utilisation pour le mois en cours
    ' - 1 car l'index du tableau commence à 0 et fini à 11
    TheMois = Month(Now) -1
     
    Set lecture=CreateObject("sapi.spvoice")
     
    lecture.rate=-2
    lecture.volume = 100
    lecture.speak "Plus que " & DateDiff("d",now,MesDate(TheMois)) & " Jours"  & FinCommentaire
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut
    @ ProgElecT, Bonjour et merci à nouveau tu es un as cela fonctionne correctement et génial avec le fichier texte à charger.

    J'ai eu juste un petit bémol de prononciation avec la phrase "Avant de toucher ma pension et mes congé payé", j'ai du créer le fichier .vbs en "ANSI" plutôt qu'en UTF sinon "et mes congés payés" était du charabia.

    Topic résolut rapidement.

    Bon dimanche.

    @+,

    cincap

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut
    Bonjour à toutes et à tous,

    Juste une question à propos de ce code, serait t'il possible uniquement de formater le fichier "data.txt" comme ceci :

    01.2025=24
    02.2025=24
    03.2025=24
    04.2025=23
    05.2025=23
    06.2025=23
    07.2025=24
    08.2025=22
    09.2025=23
    10.2025=24
    11.2025=21
    12.2025=19
    C'est pour un autre test donc pas important si non faisable.

    @+,

    cincap

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut
    Citation Envoyé par cincap Voir le message
    Bonjour ....
    serait t'il possible uniquement de formater le fichier "data.txt" comme ceci ....
    Oui bien sûr, mais il serait intéressant de savoir ce que tu vas en extraire par la suite.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut
    @ ProgElecT merci de ta réponse.

    En ce qui concerne le fichier .vbs déjà correct cela reste le même principe sauf que le fichier Data doit être formaté comme écrit.

    Si le fichier .vbs fonctionne avec la modification du format, je réaliserai en Delphi une autre application en ajoutant un troisième message le jour J soit 0 " Youppie on a le payement "

    Je sais que c'est beaucoup pour rien.

    Si ce n'est pas faisable pas grave.

    @+,

    cincap

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut (re)

    Donc le contenu du fichier Data.txt est
    01.2025=24
    02.2025=24
    03.2025=24
    04.2025=23
    05.2025=23
    06.2025=23
    07.2025=24
    08.2025=22
    09.2025=23
    10.2025=24
    11.2025=21
    12.2025=19
    et le nouveau code est
    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
     
    Function RecupFichier(CheminNomDuFIchier)
    	Dim oFso, f
    	Set oFso = CreateObject("Scripting.FileSystemObject")
    	 'Ouverture et lecture et découpe par ligne du fichier
    	Set f = oFso.OpenTextFile(CheminNomDuFIchier, 1)
            'recuperation d'un tableau de x lignes
            RecupFichier = split(f.ReadAll,vbnewline)
            f.close
            set f = nothing
            set oFso = nothing
    End Function
     
     
    Dim lecture, MesDate(12), FinCommentaire, TheMois, TblDates
     
     
    TblDates = RecupFichier("C:\MesProgs\En VBScript et HTA\Lire fichier sortie tableau de lignes\Data.txt")
    ' la variable tableau TblDates() contient chaque lignes du fichier idx 0 à 11
     
     
    'reconstitution de la variable tableau de dates pour la sortie parlée "sapi.spvoice"
    for T=0 to 11
            MesDate(T) = right(TblDates(T),2)
            MesDate(T) = MesDate(T) & "/" & left(TblDates(T),7)
            MesDate(T) = replace(MesDate(T),".","/")
            MesDate(T) = Cdate(MesDate(T))
    next
     
     
     
     
     
    if Month(Now)=5 then
            FinCommentaire = " Avant de toucher ma pension et mes congé payé"
            else
            FinCommentaire = " Avant de toucher ma pension"
    end if
     
    'exemple d'utilisation pour le mois en cours
    ' - 1 car l'index du tableau commence à 0 et fini à 11
    TheMois = Month(Now) -1
     
    Set lecture=CreateObject("sapi.spvoice")
     
    lecture.rate=-2
    lecture.volume = 100
    lecture.speak "Plus que " & DateDiff("d",now,MesDate(TheMois)) & " Jours"  & FinCommentaire
    La nouveauté est entre les ligne 15 à 28
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 537
    Par défaut
    Citation Envoyé par cincap Voir le message
    Si le fichier .vbs fonctionne avec la modification du format, je réaliserai en Delphi une autre application en ajoutant un troisième message le jour J soit 0 " Youppie on a le payement "
    Pourquoi vouloir faire et un script vbs et un soft Delphi; pourquoi ne pas tout faire soit en delphi soit en vbs ? (surtout qu'il s'agit juste de rajouter un simple test)

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut
    Bonjour à toutes et à tous.

    @ umfred,

    Pourquoi vouloir faire et un script vbs et un soft Delphi; pourquoi ne pas tout faire soit en delphi soit en vbs ? (surtout qu'il s'agit juste de rajouter un simple test)
    Tout simplement qu'avec Delphi l'interface sera plus beau et à mon âge, cela me fait du bien de connaitre toutes les solutions pour arriver au même résultat d'autant que le fichier Data.txt est utilisé pour l'application Delphi.

    @ ProgElecT, cela fonctionne correctement c'est fou ce que j'ai appris en vbs depuis que je te connais, merci pour toutes tes solutions.

    Merci à tous qui collaborent à rendre service.

    @+,

    cincap

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 562
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 562
    Par défaut Pour ne pas relancer un autre topic !
    Bonjour à toutes et à tous,

    Dans l'excellent code proposé par ProgElecT serait t'il possible dans le calcul quand le jour défini = 0 de dire " Youppie on a perçut la pension".

    Je pensais en utilisant le case mais en .vbs:


    case CompareDate(Next, Date) of

    -1 FinCommentaire = " Avant de toucher ma pension et mes congés payés"

    0 FinCommentaire = " Youppie on a perçut la pension"

    1 FinCommentaire = " Avant de toucher ma pension"

    end;
    Merci d'avance,

    @+,

    cincap

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/02/2023, 11h31
  2. Réponses: 6
    Dernier message: 02/10/2022, 13h29
  3. Modification des paramètres d'un fichier vbs
    Par dave5 dans le forum VBScript
    Réponses: 12
    Dernier message: 13/06/2016, 11h32
  4. Programme libre pour modification d'un ancien fichier rpt
    Par jlon25 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 22/08/2008, 15h42

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