PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslesen einer Homepage


Alamar
19.01.2002, 00:58
alias web {
set %abs $me
sockopen web www.heise.de 80
}
on *:sockopen:web:{
sockwrite -n web GET http://www.heise.de/index.html $+ $crlf
}
on *:sockread:web:{
var %c55 = 1
sockread %temp
tokenize 32 %temp
var %len.max = $numtok(%temp,32)
var %f = 1
while (%f <= %len.max) {
if ($mid($ [ $+ [ %f ] ],1,1) == <) {
halt
}
else {
inc %c55
if (%c55 < 10) {
var %text = %text $+ $ [ $+ [ %f ] ]
}
else {
echo -a %text
unset %text
}
}
inc %f
}
}


Mein Problem ist folgendes mein MIRC meint immer:
* /$+: string too long (line 21, script8.ini)
-
* /set: line too long (line 21, script8.ini)
das is mir noch nie passiert
und ich weiß ned warum
und anders machen will ichs ned weil wenn ich jedes token einzeln auslese isses schwul
;)


Felix Kaiser
19.01.2002, 03:31
Tjo, der Inhalt deiner Variable wäre einfach zu lang. Also machs einfach so, speicher die erhaltenen Daten inner Datei zwischen. Sicherste und einfachste Methode, zu dem wird der mIRC Variablenspeicher nich so überfordert.

Beispiel:



; Call $GetHTTP(www.heise.de,/index.html)

alias GetHTTP {
set %web_path $2
set %web_host $1
.remove http.tmp
sockopen web $1 80
}

on *:SOCKOPEN:web:{
sockwrite -n web GET %web_path HTTP/1.1 $+ $crlf
sockwrite -n web Connection-Type: Keep-Alive
sockwrite -n web User-Agent: Enter your app name here
sockwrite -n web Host: %web_host
sockwrite -n web Accept: */*
}

on *:SOCKREAD:web:{
sockread %temp
write http.tmp %temp
}

on *:SOCKCLOSE:web:{
unset %web_*
echo -a Received HTTP file successfully.
}