Ankündigung

Einklappen
Keine Ankündigung bisher.

Stringverarbeitung - Mysterium?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Stringverarbeitung - Mysterium?

    Ich "murkse" seit Tagen an einer Auswertung herum, langsam dreh' ich schon durch...
    Ich erhalte einfach nicht die erwarteten Strings.
    (es ist Code aus der EnertexV2.lib - falls er irgendwie bekannt vorkommt )

    Code:
    Syslog(Notice,$Wetter: $+Wetter_xmlText);
    Wetter_PosStart = find(Wetter_xmlText,$<forecastday>$, 0u16);
       Wetter_PosEnd = find(Wetter_xmlText,$<forecastday>$, 1u16) - 1u16;
       Syslog(Notice,$Wetter: Len0E$+convert(Wetter_PosEnd,$$));
       Syslog(Notice,$Wetter: Len0S$+convert(Wetter_PosStart,$$));
    Wetter_xmlText beginnt mit folgenden Inhalt: (wird mit Syslog(Notice,$Wetter: 00$+Wetter_xmlText) ausgegeben)
    HTTP/1.0 200 OK Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: * Content-Type: text/xml; charset=UTF-8 Last-Modified: Sat, 24 Mar 2018 04:45:15 GMT Server: Apache/2.2.15 (CentOS) X-Cacheable: YES X-CreationTime: 0.052 X-Varnish: 806806697 Expires: Sat, 24 Mar 2018 04:45:15 GMT Cache-Control: max-age=0, no-cache Pragma: no-cache Date: Sat, 24 Mar 2018 04:45:15 GMT Content-Length: 10693 Connection: keep-alive <response> <version>0.1</version> <termsofService>http://www.wunderground.com/weather/api/d/terms.html</termsofService> <features> <feature>forecast</feature> </features> <forecast> <txt_forecast> <date>04:50 CET</date> <forecastdays> <forecastday> <period>0</period> <icon>clear</icon> <icon_url>http://icons.wxug.com/i/c/k/clear.gif</icon_url> <title>Samstag</title> <fcttext><![CDATA[Meistens klar. Höchsttemperatur 50F. Wind aus ONO mit 5 bis 10 mph.]]></fcttext> <fcttext_metric><![CDATA[Meistens klar. Höchsttemperatur 10C. Wind aus ONO mit 10 bis 15 km/h.]]></fcttext_metric> <pop>10</pop> </forecastday> <forecastday> <period>1</period> <icon>nt_clear</icon>
    die Protokollierung der berechneten Werte mit Syslog bringt folgende Werte:
    Wetter_PosEnd (Len0E 65534 also "END" = bedeuted "nicht gefunden", der Suchstring <forecastday> ist aber enthalten
    genauso spannend ist
    Wetter_PosStart (Len0S 11

    An Position 11 ist "200 OK Access"
    WARUM findet "find(Wetter_xmlText,$forecastday$, 0u16)" den Suchbegriff an dieser vStelle..
    Sollte der Suchstring nicht vorhanden sein, so müsste zudem END zurückgegeben werden.

    Sicherlich übersehe ich etwas - aber was???
    Der Code ist übrigens in einer *.lib - falls das wichtig wäre....
    Zuletzt geändert von EPIX; 24.03.2018, 07:13.
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    #2
    ein paar Test und Stunden später bin ich ziemlich sicher, dass das Thema wahrscheinlich beim Einlesen des eintreffenden Telegramms seinen Ursprung hat:

    die wunderground.Api liefert "sauber", aber der eingelesene String hat im eibpc Steuerzeichen...
    Die find-Funktion kommt offenbar durch die Steuerzeichen aus dem Tritt und liefert dann eben Nonsense.
    Keine Ahnung wie ich das Ganze zu "Nur-Text" konvertieren kann

    siehe Bildvergleich
    You do not have permission to view this gallery.
    This gallery has 2 photos.
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #3
      So genau kann ich das an dieser Stelle nicht nachvollziehen. Wunderground liefert immer mehrere Pakete (die TCP Pakete kommen zerstückelt). Meine Vermutung ist, dass du zu früh das parsen anfängst, und daher das Paket nicht alle Daten enthält. Was fehlt denn am akutellen Makro?
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        wie du am Code in Post 1 siehst logge ich zuerst den empfangenen Text in Wetter_xmlText (da ist der gesuchte String vorhanden)
        dann suche ich mit "find" und logge das Ergebnis - wobei das eben falsch ist...

        Was fehlt:
        Das aktuelle wunderground makro liefert das icon nicht - (aber das ist kein Thema mehr, seit gestern verwende ich das wunderground Makro nicht mehr)
        Aktuell habe ich eine modifizierte Version der EnertexTCP.lib und werte mit XMLParse aus
        bei den Bildern in vorigen Post sieh​​​​​​​st du, dass die Daten vollständig gelesen wurden "</response>, aber eben durch Steuerzeichen "ergänzt"
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar

        Lädt...
        X