Seite 1 von 2
Umlaut bei Wettervorhersage
Verfasst: 23 Mai 2009 19:16
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
Verfasst: 24 Mai 2009 12:22
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]
Verfasst: 24 Mai 2009 16:04
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.
Verfasst: 25 Mai 2009 17:52
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
Verfasst: 25 Mai 2009 19:13
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.
Verfasst: 25 Mai 2009 19:13
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.
Verfasst: 25 Mai 2009 20:40
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
Verfasst: 26 Mai 2009 06:31
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:\Upload\gauge\vantage.xml%
%ws_setmem[1]=%ws_replacestr=ä~"Unicode ä"~%forecast_vant%%% %ws_delline%
%ws_setmem[2]=%ws_replacestr=ö~"Unicode ö"~%ws_getmem[1]%%% %ws_delline%
%ws_setmem[3]=%ws_replacestr=ü~"Unicode ü"~%ws_getmem[2]%%% %ws_delline%
%ws_setmem[4]=%ws_replacestr=ß~"Unicode ß"~%ws_getmem[3]%%% %ws_delline%
<gauge>
<text>%ws_getmem[4]%</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
Gruß
Jörg
Verfasst: 27 Mai 2009 17:00
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
Verfasst: 27 Mai 2009 17:25
von joergeli
Hallo Andy,
freut mich, daß es funktioniert.
... übrigens: sehr hübsch gemacht, Deine "Gauge-Vantage"
Gruß
Jörg
Verfasst: 02 Jun 2009 05:57
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
Verfasst: 07 Jun 2009 08:26
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.
Verfasst: 07 Jun 2009 18:34
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
Verfasst: 10 Jun 2009 05:40
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
Verfasst: 10 Jun 2009 07:37
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:\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