Internetdatei vorhanden?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

onkelz89

Betreff: Internetdatei vorhanden?

BeitragFr, Jul 20, 2007 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

gibt es einen Befehl (möglichst schnell) der testet ob die angegebene Datei im Internet vorhanden ist?

Danke im Vorraus

Eingeproggt

BeitragFr, Jul 20, 2007 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ich zwar noch nie gemacht, aber wenn, dann würd ichs als erstes mit

Code: [AUSKLAPPEN]
If FileType(internetdatei$)=1 Then Debuglog "Datei vorhanden"


probieren.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

onkelz89

BeitragFr, Jul 20, 2007 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ne geht leider nicht... schon probiert

Abrexxes

BeitragFr, Jul 20, 2007 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If not FileType(internetdatei$) RuntimeError "Ja wo isse denn?"


?
 

onkelz89

BeitragFr, Jul 20, 2007 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If Not FileType("http://www.google.de/intl/de_de/images/logo.gif") Print"nicht da!"
WaitKey


Also das Bild ist definitiv da...

Das klappt so nicht, leider.

aMul

Sieger des Minimalist Compo 01/13

BeitragFr, Jul 20, 2007 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit folgendem Code kannst du eine Datei downloaden:
Code: [AUSKLAPPEN]
stream=OpenTCPStream("www.google.de",80)

WriteLine stream,"GET /intl/de_de/images/logo.gif HTTP/1.1"
WriteLine stream,"Host: www.google.de"
WriteLine stream,""

While Not Eof(stream)
   If ReadAvail(stream)
      Print ReadLine$(stream)
   EndIf
Wend

CloseTCPStream(stream)

print "ich habe fertig"

input

Wenn die Datei da ist, lautet die erste Zeile "HTML X.X 200 OK", ansonsten "HTML X.X 404 Not Found".
Wenn du die Datei nicht downloaden willst, kannst du die Verbindung nach der ersten Zeile ja wieder schließen.


Ich bin mir sicher, dass Webserver auch noch einen Befehl haben, um nach der Existens einer Datei zu fragen(ähnlich dem GET zum downloaden). Den kenne ich allerdings nicht...
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Silver_Knee

Betreff: http://www.ex.com/bild.jpg

BeitragFr, Jul 20, 2007 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine abfrage hier macht genau das..

übrigens gibt es nicht nur "404 - Not found" sondern auch "400 - forbidden" für ein Verzeichnis meine funktion gibt allerdings nur bei "200" ein ja zurück
Code: [AUSKLAPPEN]
Function TestINetFile(name$)
name$=lower(name)
if instr(name$,"http://")=1
 server$=mid(name,8,instr(name,"/",8)-8)
 fname$=Mid(name,Instr(name,"/",8)+1)
Else
 server$=mid(name,1,instr(name,"/")-1)
 fname$=Mid(name,Instr(name,"/")+1)
Endif
stream=openTCPstream(server,80)
writeline "GET "+fname+" HTTP/1.1"
writeline "Host: "+server
repeat
delay 5
until readavail(stream)
if instr(Redline(stream),"200")
 return 1
else
 return 0
endif
end function
 

onkelz89

BeitragSa, Jul 21, 2007 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe, werde die beiden Codes heute Abend, wenn ich zuhaus bin sofort testen.

MfG Onkelz
 

onkelz89

Betreff: Re: http://www.ex.com/bild.jpg

BeitragSa, Jul 21, 2007 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
FTC hat Folgendes geschrieben:
Meine abfrage hier macht genau das..

übrigens gibt es nicht nur "404 - Not found" sondern auch "400 - forbidden" für ein Verzeichnis meine funktion gibt allerdings nur bei "200" ein ja zurück
Code: [AUSKLAPPEN]
Function TestINetFile(name$)
name$=lower(name)
if instr(name$,"http://")=1
 server$=mid(name,8,instr(name,"/",8)-8)
 fname$=Mid(name,Instr(name,"/",8)+1)
Else
 server$=mid(name,1,instr(name,"/")-1)
 fname$=Mid(name,Instr(name,"/")+1)
Endif
stream=openTCPstream(server,80)
writeline "GET "+fname+" HTTP/1.1"
writeline "Host: "+server
repeat
delay 5
until readavail(stream)
if instr(Redline(stream),"200")
 return 1
else
 return 0
endif
end function


Hab im Code 2 kleine Tippfehler gefunden, dachte danach ginge es.. aber es geht trotzdem nicht...

1. Bei den WriteLine kommt doch stream noch dahinter
2. Redline - Readline

Aber es geht nicht (sieht aus wie ne Endlosschleife)


#####

Der Code darüber ist leider sehr langsam... Das Problem ist das ich möglichst mehrere dieser Abfragen pro Sekunde durchführen möchte...
 

sdjh

BeitragFr, Aug 03, 2007 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du noch Probleme hast, dann schreib die Adresse in "GET" aus. Es gibt manchmal Server und Proxys, die nur absolute Pfade mögen. Also "GET http://google.de/... HTTP/1.0".

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group