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
            Administrator

              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
                Administrator

                  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
                  Anonym

                    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
                    Administrator

                      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
                      Anonym

                        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
                        Administrator

                          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
                          Anonym

                            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.