Autor Beitrag
wk_one
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17


D7 Professional
BeitragVerfasst: Mi 10.09.03 15:27 
Hallo,

ich möchte ein kleines Tool bauen das eine Liste von Internetlinks auf Erreichbarkeit prüft.
Links wie
www.google.de
oder
www.irgeneinwebserve...ichnis/textdatei.txt

Gibt es eine Funktion der ich den Link übergebe und diese mir zurückgibt ob das Ziel existiert bzw. erreichbar ist?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 10.09.03 17:44 
Hallo,

was heißt denn für dich ob das Ziel erreichbar ist oder nicht?

Eventl. reicht es ja ein Suche in: Delphi-Forum, Delphi-Library PING zu senden.

Gruß
Tino
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 10.09.03 20:24 
und wenn du prüfen willst ob die datei existiert, dann frag via INDY die grösse ab !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
wk_one Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17


D7 Professional
BeitragVerfasst: Do 11.09.03 08:48 
Tino hat folgendes geschrieben:
Hallo,

was heißt denn für dich ob das Ziel erreichbar ist oder nicht?

Eventl. reicht es ja ein Suche in: Delphi-Forum, Delphi-Library PING zu senden.

Gruß
Tino


Sorry, vielleicht hab ich mich falsch ausgedrückt.
Ein Ping würde ja nur schauen ob ein Host erreichbar ist.

Was ich prüfen will ist ob z.b. eine bestimmte Textdatei auf einem Server vorhanden ist. z.B. www.irgendeinhost.de/readme.txt
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 11.09.03 09:24 
Navigiere doch einfach mit einem WebBrowser dorthin und frage den ReadyState ab!

Greetz
wk_one Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17


D7 Professional
BeitragVerfasst: Do 11.09.03 10:21 
matze hat folgendes geschrieben:
und wenn du prüfen willst ob die datei existiert, dann frag via INDY die grösse ab !


ich versuche das ganze mal mit Indy + get. Das funktioniert auch solange es die URL gibt.
Hier der Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
try
    IdHTTP1.Get(edit1.text, responseStream);
  except
    on EIdHTTPProtocolException do
      ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText;
  end;//try

edit1 ist ein eingabefeld in dem die URL steht.
Wenn nun eine URL eingegeben wird die es nicht gibt, dann bricht das Programm ab und bringt eine Fehlermeldung.
Das soll es aber nicht. In Fehlerfällen soll es eine Meldung in die Variable ausgabe schreiben.

Wie schaffe ich es das Fenster mit der Fehlermeldung zu unterdrücken?
Irgendwelche Tipps?
wk_one Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17


D7 Professional
BeitragVerfasst: Do 11.09.03 10:28 
JustusJonas hat folgendes geschrieben:
Navigiere doch einfach mit einem WebBrowser dorthin und frage den ReadyState ab!

Greetz


wie?
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 11.09.03 11:12 
Die Hilfe von Delphi könnte dir mehr über "ReadyState" verraten!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
Die Eigenschaft ReadyState gibt den Status der Komponente an.

property ReadyState: TOleEnum;

Beschreibung

Mit ReadyState rufen Sie Statusinformationen über die TWebBrowser-Komponente ab. Dadurch können Sie beispielsweise verhindern, daß die Komponente verwendet wird, wenn sie auf eine Aktion nicht vorbereitet ist.

Die Eigenschaft kann folgende Werte annehmen:

Konstante  Wert  Beschreibung

READYSTATE_UNINITIALIZED  0  Standard-Initialisierungsstatus. Das Steuerelement hat noch nicht mit dem Laden seiner Eigenschaften begonnen.

READYSTATE_LOADING  1  Das Steuerelement lädt seine Eigenschaften.
READYSTATE_LOADED  2  Das Steuerelement hat seine Eigenschaften initialisiert, ist aber noch nicht interaktiv.
READYSTATE_INTERACTIVE  3  Das Steuerelement ist interaktiv. Es sind aber noch nicht alle Daten verfügbar (ein Dokument oder Frame wird gerade geladen).
READYSTATE_COMPLETE  4  Das Steuerelement ist interaktiv, und seine gesamten Daten sind verfügbar (das aktuelle Dokument ist vollständig geladen).


So navigierst du mit dem WebBrowser:
ausblenden Delphi-Quelltext
1:
WebBrowser1.Navigate('http://irgendwas.com/test.txt');					


So könntest du z. B. den ReadyState abfragen!
ausblenden Delphi-Quelltext
1:
if WebBrowser1.ReadyState = 4 then ShowMessage('File existiert'else ShowMessage('File nicht gefunden');					


Greetz
wk_one Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17


D7 Professional
BeitragVerfasst: Do 11.09.03 11:19 
Titel: Gelöst
Danke euch allen für eure Mühen.

Hab das nun folgendermaßen gelöst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
try
    IdHTTP1.Head(edit3.text);
  except
    on EIdHTTPProtocolException do
      ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText;
  end;//try
  if (Length(ausgabe)<1then
    ausgabe:='OK, alles klar'+#13#10 + IdHTTP1.ResponseText;
  ...
  ...


Vielen dank nochmal an alle :D

übrigens....
auf diese Lösung bin ich mit Hilfe aus Beiträgen anderer Foren gekommen.
Hatte mir keine Gedanken darüber gemacht, das es nicht gern gesehen wird wenn man ein Problem in mehreren Foren bespricht. Sorry.
Ich erwähne das, weil ich verhindern will dass sich jemand hintergangen fühlt.

Nochmals vielen Dank für die Mithilfe.