Suchen Ersetzen mit Variablen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Suchen Ersetzen mit Variablen

Re: Suchen Ersetzen mit Variablen

von Karolus » Mi, 13.07.2022 16:42

Hallo
Aus writer heraus mit nur den Bordmitteln per Suchen & Ersetzen wird das ne sehr frickelige bis unmögliche Angelegenheit (du musst ja theoretisch auch Monats- und Jahreswechsel berücksichtigen für das Startdatum!!)

Hier ist ne einfache Umsetzung per python

Code: Alles auswählen

from datetime import datetime as dt, timedelta 

SOFFSET = timedelta(days=1,hours=7) 
EOFFSET = timedelta(hours=19)

with open("old.ical") as oldfile, open("new.ical", "w") as newfile:
    for line in oldfile:
        line = line.strip()
        if line.startswith("DTSTART;VALUE=DATE:"):
            line = f"DTSTART:{dt.strptime(line[-8:],'%Y%m%d') + SOFFSET :%Y%m%dT%H%M%S}"
        if line.startswith("DTEND;VALUE=DATE:"):
            line = f"DTEND:{dt.strptime(line[-8:],'%Y%m%d') + EOFFSET :%Y%m%dT%H%M%S}"
        newfile.write(f'{line}\n')

Suchen Ersetzen mit Variablen

von Neuling2022 » Mi, 13.07.2022 11:10

Hallo und Guten Tag,

vielen Dank, dass ich mit diesem Forum schon so viele Probleme lösen konnte.

Jetzt habe ich mich aber hier neu im Forum angemeldet, weil ich für mein jetziges Problem keine Lösung gefunden habe.

Ich möchte in einem ICal-Kalender den vordefinierten Ganztagesstempel durch eine Zeitspanne ersetzen.

Jetzt steht im Kalender:

DTSTART;VALUE=DATE:20220104
DTEND;VALUE=DATE:20220105

Dieser Ganztages-Stempel soll ersetzt werden durch die Zeitspanne von 7.00 bis 19.00 Uhr:

DTSTART:20220105T070000
DTEND:20220105T190000

Ich habe hier zwei Probleme:

1. Bei dem Ganztagesstempel müsste das erste Datum, welches eine Variable ist, bei DTSTART um einen Tag aufaddiert werden, so dass dort auch 20220105 steht.

2. Anschließend müsste an die Datumsvariable der Zeitstempel angehängt werden.

Also laienhaft ausgedrückt für die erste Befehlszeile:

Zuerst

Suche: DTSTART;VALUE=DATE:XXXXXXXX
Ersetze: DTSTART;VALUE=DATE:XXXXXXXX + 1 Tag

Danach

Suche: DTSTART;VALUE=DATE:XXXXXXXX
Ersetze: DTSTART:XXXXXXXXT070000

Vielen Dank für die Hilfe

Nach oben