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

Тема в разделе "Delphi - Сети", создана пользователем -, 5 янв 2009.

  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;
     
  2. GangrenaGastrit

    GangrenaGastrit Гость

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

    *для
     
  3. etc

    etc Гость

    Не смешите.
     
Загрузка...

Поделиться этой страницей