Wochentags- und zeitabhängige Verabschiedung per Makro

  • So, liebe Leute, ich hab mal etwas für diejenigen, die Code reviewen möchten:


    Situation:


    Ich möchte eine Wochentags- und zeitabhängige Verabschiedung in meinen Mails haben, die folgender Bedingung folgt:


    montags bis donnerstags:
    00:00 Uhr bis 03:59 Uhr: eine angenehme Nacht!
    04:00 Uhr bis 17:59 Uhr: einen schönen Tag!
    18:00 Uhr bis 23:59 Uhr: einen schönen Abend!


    freitags:
    00:00 Uhr bis 03:59 Uhr: eine angenehme Nacht!
    04:00 Uhr bis 12:29 Uhr: einen schönen Tag!
    12:30 Uhr bis 23:59 Uhr: ein schönes Wochenende!


    samstags:
    00:00 Uhr bis 23:59 Uhr: ein schönes Wochenende!


    sonntags:
    00:00 Uhr bis 17:59 Uhr: ein schönes Wochenende!
    18:00 Uhr bis 23:59 Uhr: einen schönen Abend!



    Ich habe mir folgendes Makro überlegt:



    Die letzten Zeilen sind muß debuggen, denn es funktioniert nicht so, wie ich es haben will. Meine Ausgabe sieht so aus:


    Zu Erläuterung: ich starte The Bat! in einer Testumgebung mit änderbarem Datum, die es mir gestattet, Datum und Uhrzeit ohne Änderung der Systemzeit zu starten.


    Aber ich kriege keine Ausgabe bei der Grußformel, die in der Variable %_BYE stecken sollte.
    Ich finde einfach nicht den Fehler.
    Vielleicht siehst Du ihn? Dann schreibs doch bitte mal hier auf.

    Jörg Schiermeier
    Informatiker, Bielefeld


    The Bat! professional v9.5.x (32bit) mit XMP-, Regula- und Shell-Plugin • wine v7.9 • devuan linux (daedalus/ceres)

    Einmal editiert, zuletzt von sotel ()

  • Das generieren von %_BYE abjhängig von %_WOE und %_DYT eben in einer Vorlage für Neue Nachricht getestet.


    ist mein Mail so
    -----------------------------------
    Wochende: '0'
    DayTime: '3'
    Gruss: 'einen schönen Abend!'
    -----------------------------------
    Datum: Montag, 16. September 2013
    Uhrzeit: 13:50:30
    -----------------------------------


    TheBat 5.4.8 Final Windows 7


    Dein Makro für %_BYE gibt jedenfalls bei mir was aus, im Gegensatz zu dem bei dir.

    The Bat! Pro 10.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.3.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

    Einmal editiert, zuletzt von GwenDragon ()

  • Das -1 ist die böse Falle, nehm ich an!
    Nimm 99999 als ungültiger Tag. ;)


    Code
    %_D=-1%-
    %%_D ist %_D
    %_E="-1"%-
    %%_E ist %_E

    sieht gültig aus, macht aber für %_D keine Ausgabe.

    The Bat! Pro 10.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.3.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • Hallo Gwen,
    hallo mse,


    Das -1 ist die böse Falle, nehm ich an!


    ¡Volltreffer!


    ja, die minus eins ist wohl ein Bug in der Makro-Engine. Ich habe Gwens Tipp berücksichtigt, und die minus eins entfernt und einfach meine Tageszeitbenennungen um eins inkrementiert: Null ist jetzt eine ungültige Tageszeit.
    Zwischenzeitlich hatte ich schon meinen Linux/wine-Unterbau in Verdacht, doch das hatte sich durch Debuggen von wine nicht bestätigt.
    Vielen Dank noch mal für Eure Durchsicht.
    :thumbsup:


    Und hier nun der vollstädige Code, gern zum Nachmachen:



    @mod: Liebe Moderatorin, könntest Du den Typo in der Überschrift (Zeitabhängige mit kleinem Zett) korrigieren?
    Schon mal meinen Dank dafür!

  • Scheint ein Bug in der makro-Engine zu sein.


    Wenn du statt -1 dann "-1" nimmst, gehts vielleicht auch.
    Ja geht!


    //EDIT:
    Wenn ich mir die TheBat-Hilfe ansehe, steht da:

    Zitat

    _name="value"


    Ich nehme mal an, dass die " standardgemäß notwendig sind, dass es ohne ging ist wohl Zufall.

    The Bat! Pro 10.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.3.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • //EDIT:
    Wenn ich mir die TheBat-Hilfe ansehe, steht da:


    Hmm, ja, die Zeile am Anfang der Hilfe kenne ich wohl.
    Dann muß im Code wohl jede Zahl gequoted werden?


    Ich habs nicht getan, weil ich Integer nie quote, aber wenns hier nötig ist: ich lern eben nie aus...!
    8)

  • Dann muß im Code wohl jede Zahl gequoted werden?


    Weiß nicht, musst du die Herren und Damen Programmierende in Moldavia fragen.
    Aber du fällst nicht tot um, wenn du quotest. ;)

    The Bat! Pro 10.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.3.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.