Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос - как достать информацию из сети?


Aleks_Grey ©   (2004-11-11 06:13:00) 

Приветствую, Мастера!
Есть некоторая программа, которой позарез требуется курс нескольких валют. Как сделать так, чтобы по определенному событию программа лезла в интернет и доставала их оттуда? Заранее благодарен.


SlyFox   (2004-11-12 14:50:00) [1]

Когда то давным давно делал вот так. Качается страница с курсами c cbr.ru, парсится и выводится все это в файл. Код под себя уж сам адаптируй.

procedure TForm1.XPSpeedButton2Click(Sender: TObject);
var
 Fin, Fout: TextFile;
 Dat,Str,OutF,Mess: String;
 I: Integer;
 sr: TSearchRec;
begin
Mess:='';
OutF:='curs.htm';
NMHTTP1.InputFileMode:=True;
NMHTTP1.Body:=OutF;
NMHTTP1.Get(' http://www.cbr.ru/currency_base/D_print.asp?date_req='+date1);
begin
        if FindFirst(OutF,faReadOnly,sr)=0 then
        begin
   AssignFile(Fin, OutF);
   Reset(Fin);
   AssignFile(Fout, '\curs.txt';
   Rewrite(Fout);
   Str:='';
   While Pos('<tr bgcolor="#ffffff">',Str)=0 do
   begin
     ReadLn(Fin,Str);
     I:=Pos('установил с ',Str);
     if I>0 then Dat:=Copy(Str,I+12,10);
   end;
   While not EOF(Fin) do
   begin
     ReadLn(Fin,Str);
     I:=Pos('>',Str);
     if (Copy(Str,I+1,3)='810') or (Copy(Str,I+1,3)='978') then
     begin
     WriteLn(Fout,CnvAnsiToOem('ФОНД      :')+Copy(Str,I+1,3));
     WriteLn(Fout,CnvAnsiToOem('ДАТА      :')+Copy(Date1,1,2)+'.'+Copy(Date1,4,2)+'.'+Copy(Date1,7,4));
     ReadLn(Fin,Str);
     ReadLn(Fin,Str);
     I:=Pos('>',Str);
     Str:=Copy(Str,I+1,100);
     I:=Pos('<',Str);
     WriteLn(Fout,CnvAnsiToOem('КОЛИЧЕСТВО:')+Copy(Str,1,I-1));
     ReadLn(Fin,Str); ReadLn(Fin,Str); ReadLn(Fin,Str); ReadLn(Fin,Str);
     I:=Pos('>',Str);
     Str:=Copy(Str,I+1,100);
     I:=Pos('<',Str);
     Str:=Copy(Str,1,I-1);
     I:=Pos(',',Str);
     If I>0 then Str[I]:='.';
     WriteLn(Fout,CnvAnsiToOem('СТОИМОСТЬ :')+Str);
     ReadLn(Fin,Str); ReadLn(Fin,Str);
     IF Pos('<tr bgcolor="#ffffff">',Str)=0 then break;
     end;
   end;
   CloseFile(Fin);
   CloseFile(Fout);
   ShowMessage(Mess);
        end
        else
        begin
   ShowMessage('Файл испорчен! Повторите загрузку еще раз.');
   Exit;
        end;
end
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо