السلام عليكم
اخوتي اريد كما هو واضح في العنوان عندي قاعدة بيانات طويلة عريضة من email لافراد و مواقعهم و اريد ان شاء ربوت اي برنامج يشتغل لوحدة في كل ليلة من كل اسبوع ليقوم بتنقيت القاعدة من الامايل و المواقع الخاطأة يتم تحديثها ببد طلك من طرف فريق تحديث المعلومات .
عن الميل كتبت موضوع سابق اما عن المواقع الفكرة:
1- عمليت ping على السرفر الذي به الموقع مثلا
function TForm1.Ping(const AHost : string; const ATimes : integer; out AvgMS:Double) : Boolean;
var
R : array of Cardinal;
i : integer;
begin
Result := True;
AvgMS := 0;
if ATimes>0 then
with TIdIcmpClient.Create(Self) do
try
Host := AHost;
ReceiveTimeout:=999; //TimeOut du ping
SetLength(R,ATimes);
{Pinguer le client}
for i:=0 to Pred(ATimes) do
begin
try
Ping();
Application.ProcessMessages; //ne bloque pas l'application
R := ReplyStatus.MsRoundTripTime;
except
Result := False;Exit;
end;
if ReplyStatus.ReplyStatusType<>rsEcho Then result := False; //pas d'écho, on renvoi false.
end;
{Faire une moyenne}
for i:=Low(R) to High(R) do
begin
Application.ProcessMessages;
AvgMS := AvgMS + R;
end;
AvgMS := AvgMS / i;
finally
Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
RoundTripTime : Double;
begin
if Ping(edit1.text, 4, RoundTripTime) then
MessageDlg(Format('Ping moyen : %s',[FormatFloat('0.00',RoundTripTime)]), mtInformation, [mbOK], 0)
else
MessageDlg('Erreur. L''hôte est sans doute injoignable.', mtInformation, [mbOK], 0);
end;لا تعطي نتيجة اجابية كل الحلات
2- عمل تصفح للصفحة عن طريق WebBrowser1 ثم الدخول الاى سورس html لتحليله مثلا
procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.Navigate(Edit1.Text,EmptyParam,EmptyParam);
end;
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
if pos('<!-- Error title -->',WebBrowser1.OleObject.Document.body.innerHTML) >0 then
MessageDlg('Erreur. L''hôte est sans doute injoignable.', mtInformation, [mbOK], 0);
end;3-وهي الطريقة الثالثة
Function IsGoodUrl(iUrl: string): integer;
var
i: integer;
HTTP: TIDHTTP;
Quelltext: string;
begin
Result := 0;
HTTP := TIDHTTP.Create(NIL);
TRY
HTTP.HandleRedirects := True;
Repeat
Try
Quelltext := HTTP.Get(iUrl);
Except ON E: Exception DO
begin
Result := HTTP.ResponseCode;
Exit;
end;
End;
i := i + 1;
Until (Quelltext <> '') or (i = 5);
Finally
HTTP.Free;
End;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
vmsg: string;
vCodMsg: integer;
begin
vCodMsg := IsGoodUrl(Edit1.text);
if vCodMsg <> 0 then
begin
case vCodMsg of
-1: vmsg := 'Bad Request';
400: vmsg := 'Bad Request';
403: vmsg := 'Forbidden';
404: vmsg := 'Not Found';
end;
MessageDlg('Erreur. L''hôte est sans doute injoignable. ' + #10#13 +
'Message : ' + IntToStr(vCodMsg) + ' / ' + vmsg, mtInformation, [mbOK],
0);
end;
end;هل هناك ما هو افضل شكرا مسبقا

