
Zitat von
FF Landshausen
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.