Thema: Delphi Internetseite anpingen

Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Internetseite anpingen

  Alt 9. Apr 2005, 18:57
ich denke es funzt jetzt

ich poste einfach mal meine lösung

zur erklärung:
das programm soll die in Edt_URL.Text angegebene Seite runterladen und den Quelltext in SynMemo anzeigen.
ich habe einen Log eingebaut, wo alle aktionen reinkommen, sowie eine history, die "alte" adressen speichert.
Log is ne procedure, History is ne TStringList und Edt_URL ne ComboBox (jaja, name wird bald geändert )


eine procedure zum eigentlichen pingen
Delphi-Quellcode:
procedure TForm1.DoPing(Host:String);
//Pingen
begin
  try //Pingen
    Log('PING '+Host);
    Ping.Host:=Host;
    Ping.Ping;
  except //bei Fehler
    Log('PING '+Host+' failed');
    ShowMessage('Host wurde nicht gefunden');
    SynMemo.Text:=' Seite wurde nicht gefunden'+#13+
                  ' Bitte überprüfen sie die Adresse'+#13+#13+
                  'Sie dürfen folgende Adressmuster eingeben:'+#13+
                  ' - www.abc.xyz'+#13+
                  ' - abc.xyz';
  end;
end;
eine (ButtonClick) um die URL entsprechend der eingabe zu kürzen oder zu ergänzen
Delphi-Quellcode:
procedure TForm1.Btn_GetClick(Sender: TObject);
//URL Ergänzen und Ping einleiten
begin
  //URL ergänzen bzw kürzen
  if copy(Edt_URL.Text,1,7)='http://then
    DoPing(copy(Edt_URL.Text,8,Length(Edt_URL.Text)-7))
  else
    if copy(Edt_URL.Text,1,4)='www.then
      DoPing(Edt_URL.Text)
    else
      DoPing('www.'+Edt_URL.Text);
  History.Add(Ping.Host); //History
  Edt_URL.Clear;
  Edt_URL.Items.AddStrings(History);
  Edt_URL.Text:=Ping.Host;
end;
und eine die beim Pong die seite runterlädt
Delphi-Quellcode:
procedure TForm1.PingReply(ASender: TComponent; const AReplyStatus: TReplyStatus);
//Bei PingReply Seite Laden
var Temp:Integer;
begin
  Log('PONG from '+Ping.Host); //Log
  if SynMemo.Text<>'then //event Speichern
    Temp:=Application.MessageBox('Möchten sie Die Aktuelle Seite speichern?',Titel,MB_YESNOCANCEL);
  if Temp<>IDCANCEL then //nicht Abbruch
    begin
    if Temp = IDYES then Speichernunter1Click(Form1); //Speichern
    try
      Log('Starting Download '+Ping.Host);
      SynMemo.Clear;
      SynMemo.Text:=IdHTTP.Get('http://'+Ping.Host); //Runterladen
      Form1.Caption:=Titel + ' - ' + Ping.Host; //Titel
      Log('Download from '+Ping.Host+' ready');
    except //Fehler
      ShowMessage('Fehler beim Download'); //Fehler
      Log('Download Error');
    end;
    end;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat