| |
|
|
| Download.Inc
HTTP-Abruffunktionen per einfacheres Abfragen von Webserver-Ausgaben.
<!---->
Download/ In den Warenkorb4,99 € inkl. MwSt. keine Versandgebühr
/*
|
|
|
| INC: Download.Inc
| empfohlene Einbindung: include download.inc
| **************************
|
| Sostegno: https://xprofan.com/includes
|
| Die Urheberrechte dieser Software liegen bei mir (iF, David Strutz).
|
|
| Salve, iF.
| 20070713
|
|____________________________________________________________________________________*/
{$cleq}
/* Download.Inc XPSE Democode
XPSE (XProfan's free PreCompiler) ist disponibile unter
https://xprofan.com/xpse */
include download.inc
windowstyle ( 8 | 16 | 512 )
cls 0
color 10,0
print
if len(trim$(dw.ip())) {//is.inet.available.trick
print " INC-Version: ",dw.ver()
print " Ihre IP: ",dw.ip()
print " Http-Abruf: ",dw.get("https://xprofan.com/hilfe/sheet/xpse/","_testout.html"),"bytes."
print " Bild-Abruf: ",dw.get("https://xprofan.com/images/lv.bmp","_lv.bmp"),"bytes."
print " Downloadgeschwindigkeit:~",int(dw.checkspeed()),"bytes/sec"
long hbox=createhtmlbox (hwnd,"file:///"+translate$(getdir$("@"),"\","/")+"/_testout.html",0,180,width(hwnd),(height(hwnd)-180))
loadbmp "_lv.bmp",(width(hwnd)-210),10;0
else
print " Es konnte keine Internetverbindung genutzt werden."
waitkey
end
endif
do {
waitinput
select key
caseof 2 : break
endselect
}
destroywindow(hbox)
end
|
| 647 kB | 4,99 € inkl. MwSt. keine Versandgebühr | | item: | DE-8 | | Bezeichnung: | Download.Inc | | Version: | 0.1.6 | | Kurzbeschreibung: | Erweiterte HTTP-Abruffunktionen per einfacheres Abfragen von Webserver-Ausgaben. | | Hochgeladen: | 16.02.2009 | | | | Download | | | | 3 kB | | Hochgeladen: | 31.10.2020 | | Downloadcounter: | | | | Download |
|
|
| |
|
|
|
| Ein empfehlenswertes Update auf V0.1.4 - die Unit ist jetzt
a) kleiner b) schneller c) ohne interne DLL
Funktionsumfang ist der selbe geblieben!
Viel Divertimento! |
|
|
| |
|
|
|
| Neue Version V0.1.6, jetzt sollte z.B. auch dw.ip immer die richtige (aktuelle) ip liefern besonders wenn sich diese geändert hat. Das Cache-Problem ist behoben. Unitsource dabei. |
|
|
| |
|
|
|
| @Jacob: Habe Deinen Wunsch berücksichtigt und neue Version hochgeladen.
Demo dabei - man kann nun dem Long dw.CallerProcAddr eine ProcAddr zuweisen. |
|
|
| |
|
|
|
Michael Wodrich | |
|
| Programmieren, das spannendste Detektivspiel der Welt. | 01.12.2007 ▲ |
|
|
|
|
| @Dietmar: Du solltest die alte Unit aus Deinem XManager herauswerfen und durch diese INC ersetzen. Die INC ist fehlerfreier, unanfälliger und schneller da sie anders arbeitet als die Unit. |
|
|
| |
|
|
|
marian | Ciao, ich habe leider keine Vollversion von xProfan 11, möchte aber dennoch eine File aus dem Internet herunterladen. Dabei bin ich auf diese Include (Version 0.16) gestoßen, aber irgendwie weiß ich nicht weiter. So sieht momentan mein Testprogramm per die Prozedur aus: KompilierenMarkierenSeparieren Der Interpreter Version 8 gibt sofort eine Fehlermeldung aus, dass dw.CallerProcAddr keine Zahl sei. Kommentiert man diese Zeile aus, so folgen Fehlermeldungen, dass die Funktionen unbekannt seien. Der Interpreter der Freeversion 11 stürzt ab. Entfernt man $I download.inc kommt es nicht zum absturz, aber eben zu den solito Fehlermeldungen "Funktion unbekannt" bzw. "Klammern nicht ausgewogen"
Was mache ich falsch?? |
|
|
| |
|
|
|
| |
|
| |
|
|
|
marian | Ich hab mir jetzt XPSE heruntergeladen und den Pfad zu xpse.exe als Interpreterpfad angegeben. wenn ich nun damit das Beispielprogramm ausführe öffnet sich ein DOS-Fenster mit den Meldungen, dass Runtime und Compiler gefunden wurden. Runtime und Compiler sind beide aus der Version 8. Wenn ich dann ein "C" eingebe, um zu compilieren, bleibt der Compiler in Zeile 6 stehen mit der Fehlermeldung: "Befehl unbekannt: VAR" Ich hab auch schon versucht, in der *.enh-File alle var-Befehle durch declare zu ersetzten. Da kam dann die Fehlermeldung beim Compilieren: "Befehl unbekannt: SELECT"
Wer kann helfen?
Das Updatemanagement der Community, bringt mir nichts, da das Programm nicht in diesem Sinne veröffentlich werden soll. |
|
|
| |
|
|
|
| Ah, verstehe - "fehlen" dem XProfan 8 noch ein paar andere Features.
Ich schaue (nach dem Abendessen) ob sich das nicht einfach per XProfan 8 übersetzen lässt. |
|
|
| |
|
|
|
| Probiere mal: (ungetestet) KompilierenMarkierenSeparierendef $dw.version="0.1.6.x8.0"
var dw.CallerProcAddr&=0
proc dw.ver
return $dw.version
endproc
proc dw.ip
return dw.get("https://ip.mxii.com")
endproc
proc dw.get
parameters url$,target$
if %pCount=1
return dw.DownloadFile(url$,"",dw.CallerProcAddr&)
elseif %pCount=2
return dw.DownloadFile(url,target,dw.CallerProcAddr&)
endif
return ""
endproc
proc dw.checkinternet
var isnet&=0
var dllh&=usedll("wininet.dll")
casenot dllh& : return 0
var hinet&=external("wininet.dll","InternetOpenA",0,0,0,0,0)
if hinet&
isnet&=1
external("wininet.dll","InternetCloseHandle",hInet&)
endif
freedll dllh&
return isnet&
endproc
proc dw.checkspeed
casenot dw.checkinternet() : return 0
var __int_dwspd&=&gettickcount
dw.get("https://ip.mxii.com/speed.get")
__int_dwspd&=1000/((&gettickcount-__int_dwspd&)/150000)
return __int_dwspd&
endproc
######## INTERNAL FUNCTIONS ########
proc dw.DownloadFile
parameters url$,destinationFileName$,downloadCallerProc&
var oel&=set("ErrorLevel",-1)
var ofm&=set("FileMode",2)
var content$=""
var tofile&=if(len(destinationFileName$),1,0)
var dllh&=usedll("wininet.dll")
ifnot dllh&
set("FileMode",ofm&)
set("ErrorLevel",oel&)
return ""
endif
var hInet& = external("wininet.dll","InternetOpenA",0,0,0,0,0)
ifnot hInet&
freedll dllh&
set("FileMode",ofm&)
set("ErrorLevel",oel&)
return ""
endif
var hFile&=external("wininet.dll","InternetOpenUrlA",hInet&,addr(url$),0,0,$80000000,0)
ifnot hFile&
external("wininet.dll","InternetCloseHandle",hInet&)
freedll dllh&
set("FileMode",ofm&)
set("ErrorLevel",oel&)
return ""
endif
declare buf#
dim buf#,1024
if tofile&
if fileexists(destinationFileName)
var delfh&=assign(destinationFileName$)
erase delfh&
assign delfh&,""
endif
var fh&=assign(destinationFileName$)
openrw fh&
endif
case downloadCallerProc& : call(downloadCallerProc&,-1)
var bytesread&=0
var accbytesread&=0
while 1
external("wininet.dll","InternetReadFile",hFile&,buf#,1024,addr(bytesread&))
if bytesread&>0
if tofile
blockwrite fh&,buf#,0,bytesread&
accbytesread&=accbytesread&+bytesread&
else
content$=content$+char$(buf#,0,bytesread&)
endif
case downloadCallerProc& : call(downloadCallerProc&,bytesread&)
else
break
endif
wend
case downloadCallerProc& : call(downloadCallerProc&,-2)
external("wininet.dll","InternetCloseHandle",hFile&)
external("wininet.dll","InternetCloseHandle",hInet&)
dispose buf#
freedll dllh&
set("FileMode",ofm&)
set("ErrorLevel",oel&)
if tofile&
closerw fh&
assign fh&,""
return accbytesread&
end
return content$
endproc
|
|
|
| |
|
|
|
| Spars Dir, die Vars müssen auch noch weg... |
|
|
| |
|
|