Umlaut bei Wettervorhersage

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

hanan

Umlaut bei Wettervorhersage

Beitrag von hanan »

Hallo Wetterfreunde
Ich habe die Wettervorhersage in Textform einbinden wollen, doch die Umlaute werden nicht angezeigt. Was mache ich falsch.

Für einen Tipp bin ich Dankbar.
Gruess
hanan

Beitrag von hanan »

Hallo zusammen
Habe das Problem gefunden.
Ich arbeite mit dem Flash "gauge", welches die Umlaute nicht darstellen kann. Schade, muss ich halt die Wettervorhersage in Textform weglassen...

[url]http://andyhaenggi.ch/wetterstation.php[/url]
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo,
auch wenn das Problem durch Dich selbst gelöst ist: genau solche Angaben
Ich arbeite mit dem Flash "gauge",
wären nützlich und hilfreich, denn wie will man Dein Problem lösen helfen, wenn man keine Zusammenhänge kennt.
hanan

Beitrag von hanan »

Hallo weneu
Das Problem habe ich noch nicht gelöst, sonder nur gefunden.

Leider kann der XML/SWF Gauge (http://www.maani.us/gauge/) keine Umlaute direkt darstellen. Die Umlaute müssen in Unicode umgewandelt werden. Dieses müsste ich irgendwie in die *.txt-Datei einbinden, damit dieses abgearbeitet werden kann.

Gruess
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo,
nur als Hinweis, da ich ja nicht weiß, wie Du Überhaupt grundlegend vorgehst:
es gibt in WSWIN auch die Variabe
%ws_replacestr........%
und
%ws_replaceforhtml[das ° ^ Ä ist nur ein test äöüß]%
Vielleicht hilft Dir das weiter.
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Andy,

evtl. kann Dir das DOS-Tool replace. exe helfen:
http://www.bestcode.com/html/findreplace.html

Ich verwende es auch, um z.B. alle Kommata in einer Datei in Punkte umzuwandeln.
Du müsstest es dann per Batch-Datei automatisiert ausführen lassen und die Umlaute in Deiner TXT-Datei durch ae, oe, etc. ersetzen lassen.
Das Tool arbeitet kommandozeilenorientiert.
Beispiel:

Code: Alles auswählen

C:\testi\replace.exe -find Datum -replace #Datum# -srcdir C:\verzeichnis1\ -destdir C:\verzeichnis2\ -fname testdatei.txt
Hier werden in der testdatei.txt (im Verzeichnis1) alle Strings "Datum" ersetzt duch "#Datum#" und die testdatei.txt mit den Ersetzungen im Verzeichnis2 abgespeichert..
Man kann natürlich Ursprungsverzeichnis (srcdir) und Zielverzeichnis (destdir) identisch machen, dann wird die Ursprungsdatei nach Ersetzen des jeweiligen Strings überschrieben.

In Deinem Fall, müsstest Du die replace.exe 4 Mal über die Datei laufen lassen, damit alle möglichen Umlaute (ä, ö, ü, ß) ersetzt werden.

Evtl. ist es hilfreich für Dich ?

Gruß
Jörg


Nachtrag: Es ist z.B. auch möglich, einen String in sämtlichen TXT-Dateien eines Verzeichnisses zu ersetzen, in dem man einfach Joker (*.txt) verwendet.

P.S. : Es ist natürlich einfacher, wenn Du (wie von Werner beschrieben) die WsWIN-Variable %ws_replacestr........% verwenden kannst.
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
hanan

Beitrag von hanan »

OK, erst mal Danke für die Tipps.

Ich habe hier mal meine txt-Datei:
[code]
%customfile=c:\Upload\gauge\vantage.xml%

<gauge>
<text>%forecast_vant%</text>
</gauge>
[/code]

Nach dem Abarbeiten wird der erzeugte Text (%forecast_vant%) mit den Umlaten dargestelt (ä ö ü usw.) welche leider nicht so dargestellt werden.
Diese Umlaute müssten im Text mit Unicode (ä ö ü usw.) dergestellt werden, damit "gauge" dieses richtig darstellen kann.

Hoffe ich habe es verständlich erklärt.
Gruess
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo hanan,

wenn Du mit der Variable %forecast_vant% arbeitest,
sollte es doch möglich sein, mit der von Werner genannten
Variable %ws_replacestr=alttext1~neutext2~text%
die Umlaute durch die von Dir gewünschten Unicode-Zeichen zu ersetzen ?

Code: Alles auswählen

%customfile=c&#58;\Upload\gauge\vantage.xml% 

%ws_setmem&#91;1&#93;=%ws_replacestr=ä~"Unicode ä"~%forecast_vant%%%  %ws_delline%
%ws_setmem&#91;2&#93;=%ws_replacestr=ö~"Unicode ö"~%ws_getmem&#91;1&#93;%%%  %ws_delline%
%ws_setmem&#91;3&#93;=%ws_replacestr=ü~"Unicode ü"~%ws_getmem&#91;2&#93;%%%  %ws_delline%
%ws_setmem&#91;4&#93;=%ws_replacestr=ß~"Unicode ß"~%ws_getmem&#91;3&#93;%%%  %ws_delline%

<gauge>
<text>%ws_getmem&#91;4&#93;%</text>
</gauge> 
Du musst im Code natürlich noch z.B. "Unicode ä" durch die entspr. Unicode-Zeichen ersetzen.

Prinzip:
1. Zeile prüft, ob in der %forecast_vant% ein ä vorkommt.
Wenn ja, wird das ä durch das entspr. Unicode-Zeichen ersetzt und der gesamte Text in mem1 gespeichert.

2. Zeile prüft, ob in mem1 ein ö vorkommt und ersetzt es durch das entspr. Unicode-Zeichen.

etc.

Der "Trick" hierbei ist, daß in jeder Zeile auf einen Umlaut geprüft wird, dieser entspr. ersetzt wird
und für die nächste Prüfung der komplette Text aus der vorigen Zeile (mit den bereits ersetzten Umlauten) herangezogen wird.

Das %ws_delline% dient nur der Optik, d.h. die Zeile wird in der Ausgabedatei nicht angezeigt.

Wenn ich keinen Denk- bzw. Syntaxfehler gemacht habe, sollte es so funktionieren :wink:

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
hanan

Beitrag von hanan »

Hallo Jörg
Besten Dank für den Tipp und die Erläuterung.
Hat auf anhieb super geklappt.

Ihr seit soooo gut ;-)
Gruess
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Andy,
freut mich, daß es funktioniert.
... übrigens: sehr hübsch gemacht, Deine "Gauge-Vantage" :wink:

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
hanan

Beitrag von hanan »

Hallo Jörg
Danke für die Blumen.

Hat man sich etwas damit beschäftigt, macht es richtig Spass mit dem Gauge. Jetzt möchte ich nur noch die Mini-Grafik einbauen, welche bereits mit dem IrfanView in ein jpg umgewandelt wird.

Gruess und nochmals Danke
hanan

Beitrag von hanan »

Hallo Jörg
Es funktioniert fast alles. Wenn ich mit ws_setmem den Text berarbeite, wird nicht mehr der ganze Text angezeigt. Nach einer gewissen Anzahl Zeichen ist fertig...

[code]
%ws_setmem[1]=%ws_replacestr=~ä~%forecast_vant%%% %ws_delline%
%ws_setmem[2]=%ws_replacestr=~ö~%ws_getmem[1]%%% %ws_delline%
%ws_setmem[3]=%ws_replacestr=~ü~%ws_getmem[2]%%% %ws_delline%
%ws_setmem[4]=%ws_replacestr=.~;~%ws_getmem[3]%%% %ws_delline%
[/code]

Hast Du mir bitte hierzu noch einen Tipp.
Besten Dank im Voraus.
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Andy,

leider habe ich keine Vantage und kenne deshalb deren Vorhersagetexte nicht.
Stell doch mal ein Beispiel eines Vorhersagetextes ein,
d.h. wie er im Original aussieht und dann noch die "abgeschnittene" Version.

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
hanan

Beitrag von hanan »

Hallo Jörg

Hier die beiden Texte:


%forecast_vant% = Zunehmende Bewölkung mit wenig Temperaturänderung. Niederschläge möglich innerhalb der nächsten 24 bis 48 Stunden.
%ws_getmem[4] = Zunehmende Bewölkung mit wenig Temperaturänderung; Niederschläge

(Leider werden in der Forumsdarschtellung die Umlaute nicht als Code dargestellt, welcher durch %ws_getmem[x]% erstellt werden)

Danke für Deine Bemühungen.
Gruess
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

Hallo Andy,

ich habe noch mal nachgelesen:
Die ws_setmem-Variable kann leider nur bis max. 80 Zeichen verarbeiten,
deshalb wird der Text abgeschnitten.

Habe noch ein wenig probiert und bin auf eine Lösung mit der Variablen ws_setmemline1 gestoßen.
Diese Variable speichert eine komplette Ergebniszeile mit max. Länge 2048 Zeichen.

Probier's mal so:

Code: Alles auswählen

%customfile=c&#58;\Upload\gauge\vantage.xml% 

%ws_replacestr=ä~"Unicode ä"~%forecast_vant%%^=ws_setmemline1^
%ws_replacestr=ö~"Unicode ö"~^ws_getmemline1^%^=ws_setmemline1^
%ws_replacestr=ü~"Unicode ü"~^ws_getmemline1^%^=ws_setmemline1^
%ws_replacestr=ß~"Unicode ß"~^ws_getmemline1^%^=ws_setmemline1^

<gauge>
<text>^ws_getmemline1^</text>
</gauge> 
Erläuterung:
Das Ergebnis jeder Zeile wird immer in ^=ws_setmemline1^ gespeichert.
In der Folgezeile wird mit ^ws_getmemline1^ das Ergebnis der vorigen
Ausgabe wieder eingelesen und abermals in ^=ws_setmemline1^ gespeichert, d.h. ^=ws_setmemline1^ wird überschrieben.
Das Ganze wird so oft wiederholt, bis alle Umlaute ersetzt sind.

Berichte noch mal, ob's jetzt funktioniert.

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
Antworten