[Modul] OWM - OpenWeatherMap (Wetterdaten)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: [Modul] OWM - OpenWeatherMap (Wetterdaten)

Beitrag von NicTheQuick »

Irgendwie mag es bei mir trotzdem nicht funktionieren. Ich vermisse noch ein paar Fehlerabfangroutinen.
Zum Beispiel bekomme ich diesen Fehler in Zeile 98, wenn ich das Wetter in "Berlin,de" sehen möchte.
[15:09:55] Executable gestartet.
[15:09:56] [ERROR] Zeile: 98
[15:09:56] [ERROR] Trying to free or to reallocate a non-allocated memory block
[15:10:00] Das Programm wurde beendet.

Code: Alles auswählen

            *Mem = ReAllocateMemory(*Mem, SizeAll)
Wenn ich aber einen Ort her nehme mit Umlauten, wie z.B. "Köln,de", dann bekomme ich in Zeile 189 diesen Fehler:
[15:12:02] Executable gestartet.
[15:12:03] [ERROR] Zeile: 189
[15:12:03] [ERROR] Ungültiger XML-Knoten. (0)
[15:12:08] Das Programm wurde beendet.

Code: Alles auswählen

      *ChildNode = ChildXMLNode(MainXMLNode(XML))
Wenn ich jetzt ich in den Compiler-Optionen "Unicode" aktiviere, kommt bei "Köln,de" der selbe Fehler wie vorher bei "Berlin,de".

Hast du eine Idee, woran das liegt? Ich habe nämlich gerade keine Zeit den Code zu untersuchen.
Benutzeravatar
Bisonte
Beiträge: 2467
Registriert: 01.04.2007 20:18

Re: [Modul] OWM - OpenWeatherMap (Wetterdaten)

Beitrag von Bisonte »

Ehrlich gesagt, nein. Unter Win8.1 x64, Win7 x64 und x86 läuft es in Unicode oder Ascii ohne auch nur einmal zu zucken.
Auch mit den Umlauten kein Problem.

Wobei die Zeile 98 ja zu ReceiveHTTPMemory(ts-soft) gehört, und bisher fehlerfrei lief.

Das mit dem ungültigen Knoten hatte ich nur im ASCII Modus, wenn Umlaute vorhanden sind....
daher ja diese Behelfsprozedur...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: [Modul] OWM - OpenWeatherMap (Wetterdaten)

Beitrag von HeX0R »

PB-Linux kennt offensichtlich keine großen Umlaute (im ASCII Mode, in Unicode schon)

Code: Alles auswählen

Debug UCase("Köln")  ;KöLN
Debug LCase("Köln")  ;köln
Daher geht auch die Funktion GetCityName() nicht richtig.
Es scheint auch zu helfen, wenn man dem SendNetworkString noch ein

Code: Alles auswählen

, #PB_UTF8)
spendiert
Benutzeravatar
Bisonte
Beiträge: 2467
Registriert: 01.04.2007 20:18

Re: [Modul] OWM - OpenWeatherMap (Wetterdaten)

Beitrag von Bisonte »

Gerade hab ich feststellen müssen, daß OpenWeatherMap sein API Modell geändert hat. Es ist nun ein Key nötig um Daten per API abzuholen.
Damit ist dieser Code eigentlich ad acta gelegt.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten