Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Eggdrop - Alle zeilen aus Externe txt ausgeben

Dieses Thema im Forum "Eggdrop Scripting" wurde erstellt von LetsBaron, 30. August 2012.

  1. LetsBaron

    LetsBaron New Member

    Hoi wertes Team,

    Ich habe hier im Board das script gefunden:

    Code (Text):
    Quelltext kopieren
    1. package require http
    2. bind pub - !test pub:x
    3. proc pub:x {nick host hand chan text} {
    4.     set url "http://test.letsbaron.de/test2.txt"
    5.     set connection [http::config -useragent "Mozilla"]
    6.     catch { set connection [http::geturl $url -timeout 10000] } error
    7.         if {![string match -nocase "*::http::*" $error]} {
    8.             putserv "PRIVMSG $chan :Fehler beim Verbinden!"
    9.             return 0
    10.         } else {
    11.                 set data [http::data $connection]
    12.                 http::cleanup $connection
    13.                 putserv "PRIVMSG $chan : $data"
    14.          }
    15. }
    Es funzt auch soweit, nur möchte ich das gerne so anpassen das er nicht nur die erstezeile ausliest sondern die gesamte txt datei.
    Es befinden sich zwischen 3-9 zeilen in der txt, jenachdem zuwelchen zeitpunkt sie abgerufen wird. hat da jemand nen anstoß dazu.
  2. coding-board

    coding-board Member

    Werbung
  3. DJFelipe

    DJFelipe Active Member c-b Experte

    Du liest derzeit den gesamten Inhalt, den du über http:data bekommst in eine Variable ein. Diesen gibst du per putserv weiter... Du hast aber natürlich einen LineFeed ("\n") und einen Carriage Return ("\r") am Ende jeder Zeile (Mag variieren.. manchmal nur \n und manchmal nur \r...) und genau deswegen siehst du nur die 1. Zeile, da nach dem ersten LineFeed der putserv natürlich abschliesst... der Rest geht hierbei ins Nirvana

    Es gibt jetzt 2 Varianten, mit denen du arbeiten kannst..

    Variante A)
    Du splittest die Variable $data anhand des \r\n und gehst mit einer while durch, um jede Zeile zu posten.

    Variante B)
    Du speicherst die Variable $data temporär in einer Datei zwischen und liest sie dann aus
    z.B.:
    Code (Text):
    Quelltext kopieren
    1.   set fs [open "/tmp/eggdrop_http_data" r]
    2.   while {![eof $fs]} {
    3.     gets $fs line
    4.     putserv "PRIVMSG $chan :$line";
    5.   }
    6.   close $fs
    Bleibt somit jetzt dir überlassen. Wie du in Variante A den String anhand des Zeichen splittest um ihn in einer while/foreach/whatever zu durchforsten, fällt mir derzeit leider nicht ein:rolleyes:
    LetsBaron gefällt das.
  4. LetsBaron

    LetsBaron New Member

    Danke dir für die Antwort, es hat mich weiter gebracht und habe es hinbekommen was ich wollte ;))
Die Seite wird geladen...
Ähnliche Themen - Eggdrop zeilen Externe Forum Datum
[eggdrop] Timer mit mehrer zeilen? Eggdrop Scripting 25. Oktober 2005
[Gelöst] [TCL (Eggdrop] zeilen splitten Eggdrop Scripting 19. Juni 2005
Eggdrop: Prüfen von Zeilen Eggdrop Scripting 11. Mai 2005
Eggdrop soll sc_trans starten bzw. stopen Eggdrop Scripting 31. März 2013
Tcl error in file 'eggdrop.conf': can't find package ftp Eggdrop Scripting 4. Februar 2013