Sonuncunun izahını edə bilərdinizmi? Fayl olduqda ədəd göstərilir, bəs fayl olmadıqda proqram bu qədər uzun vaxtda nəyi fikirləşir?!
Belə bir kodda yoxlaya bilərsiz
[code]
procedure TFormMain.Button1Click(Sender: TObject);
var
Http: TIdHTTP;
begin
Http := TIdHTTP.Create(nil);
try
Http.Head('http://FilanSayt.com/İlk_qovluq/Sonraki_qovluq/Mene_lazim_olan_fayl.exe');
ShowMessage(IntToStr(Http.Response.ContentLength));
finally
Http.Free;
end;
end;
[/code]
Salam
TIdHTTP classınan istifadə edə bilərsiz.
[code]
MyIdHTTP.Head(TheURL);
ResponseCode := MyIdHTTP.Response.ResponseCode; // fayl var
ContentLength := MyIdHTTP.Response.ContentLength;
[/code]
Əslində sualımı başdan başqa cür verməliydim. Əslində məni maraqlandıran sual belədir:
Tutaq ki, hər hansı saytın serverində müəyyən faylın varlığını yoxlamaq istəyirəm və serverdəki faylın həcmi də 1 QB-dan artıqdır, yəni fərz edək ki, http://FilanSayt.com/İlk_qovluq/Sonraki_qovluq/Mene_lazim_olan_fayl.exe faylını RAM-a yerləşdirmədən varlığını öyrənmək istəyirəm, onda müvafiq kod necə olacaq?!
[code]function fileExists(const url: String): Bool;
var http: TIdHTTP; answer: Bool;
begin
answer:=True;
http:=TIdHTTP.Create(nil);
try
http.Get(url);
except
on E: EIdHTTPProtocolException do answer:=False;
end;
FreeAndNil(http);
Result := answer;
end;[/code]
Bu koddakı mənfi tərəf fayl yükləyib, sonra xəbərdarlıq edir ki, bu da çox vaxt aparır, yəni faylın həcmi 1 QB-dan çoxdursa və məndə də Dial-updırsa, gör mən nə qədər gözləməliyəm, halbuki, brauzerə girib, gözlərimlə 404 səhvini görsəm, daha az vaxtım gedəcək :)
Salam.
[code]
uses Ping;
...
const ADP_IP = '74.125.232.49'; (* https://www.google.az/ *)
begin
If Ping.Ping(ADP_IP) then
ShowMessage('Google.az Online');
end;
[/code]
bu kod ile saytın ip ping atırıq əgər sayt aktivdirsə ShowMessage ile göstəririk.
Uğurlar