Datei von Webseite laden

Startseite Foren Deutsches LiveCode-Forum Datei von Webseite laden

Ansicht von 10 Antwort-Themen
  • Autor
    Beiträge
    • #4398
      RehW
      Teilnehmer

      Hallo zusammen,

      ich versuche gerade mit folgenden Code den Inhalt einer Datei von einer Webseite zu laden:

      on mouseUp
         put "http://meineseite/update.txt" Into updURL
         load URL updURL with message "FileIsDoneDownloading"
      end mouseUp
      
      on FileIsDoneDownloading pURL, pURLStatus
         if pURLStatus is "cached" then
            set the text of field "Ausgabe" to URL pURL
         end if
      end FileIsDoneDownloading

      das funktioniert soweit auch alles. Den Inhalt bekomme ich richtig angezeigt im Feld Ausgabe, aber wie bekomme ich den Inhalt in eine Liste? Ich könnte das Feld auslesen und alles in eine Liste stecken, aber das geht doch bestimmt auch ohne den Umweg.

      Gruss Rene

    • #4402
      Torsten
      Teilnehmer

      Mach es noch einfacher:

      put url "http://meineseite/update.txt" into field "Ausgabe"

      aber was meinst Du mit Liste?

    • #4404
      RehW
      Teilnehmer

      Hallo Thomas,

      ich möchte die Datei in eine Liste einlesen. Ich probiere das mal mit "put url". Ich hatte im Dictionary nur den Befehl "load" gefunden.

      Gruss Rene

    • #4406
      Klaus Major
      Verwalter

      Hallo Rene,

      ob Feld, Variable oder Liste, der Weg ist identisch!

      ...
      put url "http://meineseite/update.txt" into Deine_Liste_oder_Variable_oder_wasauchimmer_hier
      ...

      Oder wie oder was? 🙂

      Gruß

      Klaus

    • #4408
      RehW
      Teilnehmer

      Hallo Klaus,

      mit "put url ..." funktioniert es auch, aber mit dem Code von oben (set the text of field "Ausgabe" to URL pURL) bekomme ich die Liste nur in das Ausgabefeld, nicht jedoch in meine Liste. Das Feld Ausgabe habe ich nur für Testzwecke erstellt.
      Deshalb war ja meine Frage wie ich die Datei direkt in meine Liste bekomme ohne den Umweg über ein Feld. Bei load kann ich mir sicher sein das die Datei komplett geladen wurde und falls nicht es erneut versuchen oder eine Fehlermeldung ausgeben.

      Gruss Rene

    • #4410
      Klaus Major
      Verwalter

      Hi Rene,

      dann musst du halt "the result" checken:

      ...
      put url "http://meineseite/update.txt" into Deine_Variable_Liste
      ## the result = EMPTY bei Erfolg
      if the result <> EMPTY then
         answer "Fehler:" && the result
         exit to top
      end if
      ...

      Gruß

      Klaus

    • #4518
      appTaurus
      Teilnehmer

      Hallo,

      wie verhält es sich mit dem laden einer Webseite?

      Ich lade mit

       get URL ("https://www.eineBeliebigeURL.com/tMeineVaribale/")
         put it into field "Output"

      eine Webseite in ein Textfeld. Dann extrahiere ich mit put offset und put char etc. die Information die ich benötige und schreibe sie in die entsprechenden Variablen bzw. exportiere sie in eine Datei.

      Mit einer repeatschleife die tMeineVariable verändert wiederhole ich den Vorgang anhand einer Liste mit entsprechenden Werten für tMeineVariable.

      Meine Frage ist wie ich überprüfen kann ob der Inhalt der Seite vollständig geladen wurde und ins Textfeld kopiert wurde und dann erst meine routine zum extrahieren der Informationen startet.

      Behelfsmäßig habe ich mir mit 'wait 1 second with messages' eine Verzögerung eingebaut. Das funktioniert bei einer schnellen internetverbindung gut genug für eine frühe alphaversion meines programs aber ich bin sicher es gibt eine elegantere Lösung.

      Wäre dankbar für eure Ideen.

      Grüße

      Kosta

    • #4520
      Klaus Major
      Verwalter

      Hi Kosta,

      Du könntest es mit LOAD und einer Callback Message versuchen.

      ...
      load URL ("https://www.eineBeliebigeURL.com/tMeineVaribale/") with message "DeinCallBackHier"
      ...

      Dann irgendwo im Messagepath:

      command DeinCallBackHier tUrl, tUrlStatus
        put url tUrl into field "Output"
        ## Nun hier Deine Verarbeitung starten...
      end DeinCallBackHier

      Natürlich noch Errorchecking (urlStatus!), aber das ist ja selbstverständlich, woll? 🙂

      Gruß

      Klaus

    • #4522
      appTaurus
      Teilnehmer

      Hallo Klaus!

      slebstverständlich ist für mich noch nix, bin ja immer noch Anfänger 😉 Aber vielen lieben Dank für den Code und den Tip. Was passiert beim Errorchecking?

      Grüße

      Kosta

    • #4531
      Klaus Major
      Verwalter

      Hallo Kosta,

      Was passiert beim Errorchecking?

      da werden Error gechecked! 😀

      Nein, es kann natürlich immer was schiefgehen im Internet, also solltest Du in dem Handler den Status der URL überprüfen. Check das Dictionary für weitere mögliche Werte von URLSTATUS.

      z.B.

      command DeinCallBackHier tUrl, tUrlStatus
      
        ## "cached" = erfolgreicher Download, alles anders sind mögliche Fehler.
        if tUrlStatus <> "cached" then 
           answer "Ein Fehler ist passiert, rette sich, wer kann!" & CR & tUrlStatus
           exit to top
        end if
        put url tUrl into field "Output"
        ## Nun hier Deine Verarbeitung starten...
      end DeinCallBackHier

      Liebe Grüße

      Klaus

    • #4535
      appTaurus
      Teilnehmer

      Ich verstehe!

      Super! Danke. Das erspart mir eine menge Kopfschmerzen. Die bedeutet von "cached" ist mir nicht ganz klar gewesen obwohl es das Wort ja ziemlich genau sagt was es ist 😉

      Vielen Dank nochmal!

Ansicht von 10 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.