почему не правильно проверяет подключение к интернету?

  • Автор темы -
  • Дата начала

Гость
#1
программа слита из различных исходников и моих собственных доработок, результат - скачивание с сайта курса валюты на текущий и прогноза погоды на следующий день. Город для прогноза погоды выбирается из выпадающего списка. если нету подключения к интернету , выдается сообщение об этом. так вот , у меня инет работает, а сообщение все равно выдается.. А у друга проверяли, отлично работает.
код программы :

uses
RASUnit

Function Connecting: Integer;
Var
Conns: Array[1..10] Of TRasConn;
Size: Integer;
Num: Integer;
Begin
Size:=Sizeof(TRasConn)*10;
Fillchar(Conns, Size, 0);
Conns[1].DwSize:=Sizeof(TRasConn);
RASEnumConnectionsA(@conns[1], Size, Num);
Connecting:=Num;
End;

procedure TForm1.Button1Click(Sender: TObject);
var
S: TStringList;
P,I: integer;
USD,EUR,AFS,pM,gorod: string;
begin

HTTP:=TIdHTTP.Create(nil);
HTTP.HandleRedirects:=True;
HTTP.ProtocolVersion:=pv1_0;
HTTP.ProtocolVersion:=pv1_0;

If Connecting<>0 Then
Begin
S:=TStringList.Create;
S.Text:=HTTP.Get('http://www.rbc.ru/out/802.csv');
// Курсы валют
P:=S.IndexOf('#---- Курсы ЦБ РФ ----');
//
if not (P=-1)
then
begin
for i:=0 to 5 do
begin
inc(P);
if Pos('USD ЦБ РФ',S.Strings[p])>0
then USD:=S.Strings[p];
if Pos('EUR ЦБ РФ',S.Strings[p])>0
then EUR:=S.Strings[p];
if Pos('GBP ЦБ РФ',S.Strings[p])>0
then AFS:=S.Strings[p];
end;

end;
Delete(USD,1,pos('/',USD));
Delete(USD,1,pos(',',USD));
Delete(USD,pos(',',USD),20);
Delete(EUR,1,pos('/',EUR));
Delete(EUR,1,pos(',',EUR));
Delete(EUR,pos(',',EUR),20);
Delete(AFS,1,pos('/',AFS));
Delete(AFS,1,pos(',',AFS));
Delete(AFS,pos(',',AFS),20);
Label1.Caption:='курс валют на '+DateToStr(Now)+': '+#10#13+#10#13+' Доллар США: '+USD+#10#13+' Евро: '+EUR+#10#13+' Английский фунт стерлингов: '+AFS;
// Погода
gorod:=ComboBox1.Text;
P:=S.IndexOf('#---- Погода в городах России и СНГ ----');

if not (P=-1)
then
begin
for i:=0 to 23 do
begin
inc(P);
if Pos(gorod,S.Strings[p])>0
then pM:=S.Strings[p];
end;

end;
HTTP.Free;
Delete(pM,1,pos('/',pM));
Delete(pM,1,pos(',',pM));
Delete(pM,pos(',',pM),20);
Label1.Caption:=Label1.Caption+#10#13+#10#13+'Погода на завтра: '+#10#13+#10#13+ ' '+gorod+ ': '+pM;
End
Else
ShowMessage('Интернет не подключен');
end;
 
G

GangrenaGastrit

Гость
#2
Вообще бля таких целей есть команда ЭХО. По седьмому порту нужно эту команду послать - если ответ есть, то и иинет есть а точнее сайт. Самый быстрый спосоп - использовать idEcho и host выставь ru.msn.com - этот никогда не упадет, так что 100% проверка.

*для