Ankündigung

Einklappen
Keine Ankündigung bisher.

Split-Funktion bei webinput-Eingabe, stehe mal wieder auf'm Schlauch...

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

    Split-Funktion bei webinput-Eingabe, stehe mal wieder auf'm Schlauch...

    Hallo zusammen,

    ich stehe mit der Split-Funktion irgendwie aufm Kriegsfuß, und bekomme es nur nurch ein Workaround hin:
    webinput der Uhrzeit, z.B. 21:30, wird mit beiden Funktionen verarbeitet.
    Die Stunden werden immer richtig gelesen, aber einmal werden die Minuten richtig eingelesen, einmal nicht (find-Funktion), nur warum?
    Wäre über Tipps dankbar, damit ich's versteh...

    Vielen Dank euch & schönen Abend Alex



    Geht, also Minuten werden richtig gelesen:

    if change(rSchlZiAb) then \\
    RSchlZiAb_hh=convert(split(rSchlZiAb,0u16,find(rSc hlZiAb,$:$,0u16)),0u08); \\
    RSchlZiAb_mm=convert(split(rSchlZiAb,3u16,4u16),0u 08) \\
    endif

    Geht nicht, Minuten werden nicht gelesen:

    if change(rKiZi1Auf) then \\
    RKiZi1Auf_hh=convert(split(rKiZi1Auf,0u16,find(rKi Zi1Auf,$:$,0u16)),0u08); \\
    RKiZi1Auf_mm=convert(split(rKiZi1Auf,find(rKiZi1Au f,$:$,0u16),1399u16),0u08) \\
    endif

    #2
    Hi,

    schau dir am besten mal den Inhalt der Variable rSchlZiAb im Debugger an: Sonderzeichen kommen URL-codiert aus der webinput-Funktion, aus dem : wird also ein %3A

    Pack' mal die Funktion urldecode noch mit rein (ungetestet):
    Code:
    decodedInput=urldecode(rKiZi1Auf, $utf-8$c14,$utf-8$c14)
    if change(decodedInput) then {
        RKiZi1Auf_hh=convert(split(rKiZi1Auf,0u16,find(rKi Zi1Auf,$:$,0u16)),0u08);
        RKiZi1Auf_mm=convert(split(rKiZi1Auf,find(rKiZi1Au f,$:$,0u16),1399u16),0u08);
    } endif

    Kommentar


      #3
      Guten Morgen,

      vielen Dank für deinen Hinweis, klingt logisch, bin aber nicht überzeugt ;-)
      Denn warum funktioniert dann das Auslesen der Stunden bis zum Doppelpunkt, den findet er ja???
      Wenn ich wieder auf der Baustelle bin, teste ich das urldecode, geht jetzt hier auch vorerst mit der Angabe der Position...

      Viele Grüße Alex

      Kommentar


        #4
        Weil find EOS liefert, falls die Zeichenkette nicht gefunden wurde. Und convert wird dann so viele Zahlen interpretieren, bis etwas unpassendes kommt.

        Die Fehlersuche gestaltet sich bei sowas deutlich einfacher, wenn du Variablen anlegst und denen zB die Positionen aus find() zuweist. Diese kannst du dann bequem im Debugger abfragen.

        Kommentar


          #5
          Hi, das mit den Variablen ist ein guter Tipp, mach ich künftig so. Obwohl ich schon elends viele hab... aber es ist dann schon viel einfacher mit dem Debugger.
          Viele Grüße Alex

          Kommentar

          Lädt...
          X