Ergebnis 1 bis 15 von 1906

Thema: Wetterwarnung Version 3

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Registriert seit
    29.11.2006
    Beiträge
    76
    Zitat Zitat von FF Landshausen Beitrag anzeigen
    Hallo Zusammen hab da eine frage der DWD Bayern schreibt immer zulange warnungen da ich bei 160 zeichen gerade mal den tag bekomme was kann man da machen?
    Was möchtest du denn haben?

    Ich lasse mir per Batch-Skript die Warnungen so aufbereiten, dass Warnungstext und Zeitraum (jeweils Datum & Zeit von - bis) für alle momentan existiereneden Warnungen in einer Zeile bzw. Batch-Variable stehen. Bei mehreren Warnungen, bzw. "langen" Warntexten (z.B. Warnung vor Gewitter mit Sturmböen und Starkregen) wirst du auch hier schnell 160 Zeichen überschreiten. Aber einen Kompromiss musst du eingehen - 160 Zeichen sind halt nicht wirklich viel.

    Zur Aufbereitung der von Wetterwarnung gelieferten Daten (ich zerlege die Datei DWD1.htm.txt) nutze ich die Unix-Tools für Windows TR und SED sowie ANSIASCI (Konvertierung der Umlaute für E-Mailversand). WICHTIG dabei ist, dass der entsprechende Landkreis von der Seite wettergefahren.de ausgewählt wird, da sonst die Eingangsdatei DWD1.htm.txt einen anderen Inhalt bekommt und die Konvertierung nicht funktioniert.

    Batchdatei (Auszug): Achtung! Anzeige fehlerhaft, bitte angehängte Datei öffnen.

    Code:
    :Aufbereitung
    CD %TEMP%
    REM -----------------------------------------------------------------------------
    REM - Zeilenumbrüche CR/LF in LF umwandeln
    REM -----------------------------------------------------------------------------
    TR -d \r <"%APPDATA%\Wetterwarnung\DWD1.htm.txt" >dwd.tp0
    FOR /f "delims=;" %%i IN (dwd.tp0) DO SET zeile1=%%i
    IF "%zeile1%" == "Es ist keine Warnung aktiv." GOTO KeineWarnung
    REM -----------------------------------------------------------------------------
    REM - Text "Amtliche " & "ausgegeben vom Deutschen Wetterdienst" löschen
    REM - Zeilen mit Text "Landkreis", "Kreis", "Stadt", "vorhanden" & "am" löschen
    REM -----------------------------------------------------------------------------
    SED "s/Amtliche /, /g; s/ausgegeben vom Deutschen Wetterdienst//g; /Landkreis/d; /Kreis/d; /Stadt/d; s/=//g; /vorhanden/d; /DWD/d; /am:/d" dwd.tp1
    REM -----------------------------------------------------------------------------
    REM - Ausgabe der Absätze die Warnmeldung & Uhrzeiten enthalten
    REM -----------------------------------------------------------------------------
    SED -e "/./{H;$!d;}" -e "x;/Uhr/!d;" dwd.tp2
    REM -----------------------------------------------------------------------------
    REM - Löschen vorhandener Leerzeilen
    REM -----------------------------------------------------------------------------
    SED "/^$/d" dwd.tp3
    REM -----------------------------------------------------------------------------
    REM - Text und Wochentag der Datums- / Zeitangaben entfernen
    REM - "=" am Anfang jeder Zeile einfügen
    REM -----------------------------------------------------------------------------
    SED "s/ von//g; s/bis: /- /g; s/Montag, //g; s/Dienstag, //g; s/Mittwoch, //g; s/Donnerstag, //g; s/Freitag, //g; s/Samstag, //g; s/Sonntag, //g; s/^/=/" dwd.tp4
    REM -----------------------------------------------------------------------------
    REM - In eine Zeile zusammenfassen
    REM -----------------------------------------------------------------------------
    SED -e :a -e "$!N;s/\n=/ /;ta" -e "P;D" dwd.tp5
    REM -----------------------------------------------------------------------------
    REM - "=" am Beginn entfernen
    REM -----------------------------------------------------------------------------
    SED "s/=//g" dwd.tp6
    REM -----------------------------------------------------------------------------
    FOR /f "delims=;" %%i IN (dwd.tp6) DO SET meldung1=%%i
    SET meldung1=%meldung1:~2%
    SET meldung1=%meldung1: , =, %
    SET meldung1=%meldung1: gÜltig:=:%
    ECHO %meldung1% > dwd.tp7
    CALL ANSIASCI dwd.tp7 dwd.tp8 /as /o
    FOR /f "delims=;" %%i IN (dwd.tp8) DO SET meldung2=%%i
    GOTO Weiter
    
    :KeineWarnung
    SET meldung1=%zeile1%
    SET meldung2=%zeile1%
    GOTO Weiter
    
    :Weiter
    DEL dwd.tp*
    
    ECHO %meldung1%
    ECHO %meldung2%
    Ist sicher nicht die eleganteste und schönste Lösung aber funktioniert. Am Ende kommt dann z.B. folgende Text-Zeile raus:

    WARNUNG vor WINDBÖEN: 08.08.2008 12:00 Uhr - 08.08.2008 19:00 Uhr, WARNUNG vor GEWITTER mit STURMBÖEN, STARKREGEN und HAGEL: 08.08.2008 12:30 Uhr - 08.08.2008 16:20 Uhr

    Gruß Sandro

    EDIT: Ich habe mal den Quellcode als Textdatei angehängt, da im Beitrag leider ein paar notwendige Sonderzeichen und Textbestandteile beim Anzeigen verschluckt werden, obwohl sie im Beitrag selbst enthalten sind. Vielleicht kann mir ja auch einer sagen, mit welchem Tag/BBCode ich den Text markieren muss, damit er so wie eingetragen auch angezeigt wird.
    Angehängte Dateien Angehängte Dateien
    Geändert von wave_ceptor (14.08.2008 um 11:28 Uhr)
    Kann man schon was sagen?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •