_DayIntervalToDateArray & @Hour & @min

  • Danke...

    für den Tipp..
    Habe bereits das Problem gelöst und bin schon an meinem nächsten problem dran ;)

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    2 Mal editiert, zuletzt von subzero007 (28. September 2009 um 12:30)

  • Zitat

    Ich finde die 2^$n Methode ürbigens ziemlich effektiv.

    Diese Methode ist nur dann effektiv, wenn du damit irgendetwas einsparen kannst, Speicherplatz, Zeit usw.
    Aber nur "weil es geht" einen lesbaren Ausdruck in etwas (auf Anhieb) unleserliches zu verwandeln um es danach wieder in lesbare Daten zu transferieren ist suboptimal.
    Ich versuche daher wenn es weder auf Zeit noch auf Platz ankommt, so lesbar wie möglich zu Scripten.
    Dann können auch ggf. andere etwas damit anfangen.

  • Die Aufgabe war ja (vermutlich :D).

    1.Mo-So: Auswählbar
    2. Starzeit: An jedem ausgewählten Tag zu einer bestimmten Uhrzeit
    3. Alle angegebenen Verzeichnisse zu sichern.

    Seine Ini
    Code
    [Wochentag]
    tage=80
    [Startzeit]
    Uhr=16:00
    [Quelle-Ziele]
    F:\=C:\
    F:\=x:\
    F:\=y:\


    Also kann man jeden Tag einzeln abfragen:

    Die Ini sähe dann so aus
    Code
    [Wochentag]
    Mo=True
    Die=True
    Mi=True
    Do=False
    Fr=False
    Sa=True
    So=False


    Oder man verwendet eine Methode (hier 2^n), die alle Kombinationsmöglichkeiten zusammenfasst.

    Ansonsten gebe ich dir natürlich recht.

  • habe das jetzt so gelöst:

    [autoit]

    Local $savedays = IniRead(@systemdir & "\save.ini", 'sicherung', 'tage', 0)
    Local $time = IniRead(@systemdir & "\save.ini", 'sicherung', 'zeit', '1600')

    [/autoit][autoit][/autoit][autoit]

    While 1
    If @HOUR & @MIN = $time Then ; prüfe Uhrzeit
    ; prüfen ob aktueller Tag für Sicherung vorgesehen ist
    If BitAND($savedays, 2^(@WDAY-1)) Then
    _save()
    ; Sicherung starten
    EndIf
    EndIf
    Sleep(60000)
    WEnd

    [/autoit][autoit]

    IniWrite(@SystemDir & '\save.ini', 'Startzeit', 'Uhr', StringReplace(GUICtrlRead($Time), ':', ''))

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    • Offizieller Beitrag

    Diese Methode ist nur dann effektiv, wenn du damit irgendetwas einsparen kannst, Speicherplatz, Zeit usw.
    Aber nur "weil es geht" einen lesbaren Ausdruck in etwas (auf Anhieb) unleserliches zu verwandeln um es danach wieder in lesbare Daten zu transferieren ist suboptimal.

    Ja Andy, so ist es. Und da in diesem Kontext etliche Abfragen, die Zeit verbraten, eingespart werden, ist es hierfür durchaus sinnvoll.
    Dass weniger Code zu schreiben ist, ist ein angenehmer Nebeneffekt.
    Auch wenn die Einsparungen sicher nicht von Belang sind, erachte ich es als sinnvoll sich rechtzeitig Optimierungsmöglichkeiten zu erschließen. Bei größeren Skripten hat man dann tatsächlich einen Benefit.