Показать сообщение отдельно
  #1  
Старый 09.11.2010, 08:57
Аватар для Bloo
Bloo Bloo вне форума
Новичок
 
Регистрация: 04.11.2010
Сообщения: 54
Репутация: 10
Восклицание Поиск в тексте html

В общем мне необходимо написать программу, которя осуществляет поиск в фале html.
Условия программы:
Нет подключения к интернету,есть только сохранённая страница html с курсом валют.
Нужно, чтоб при нажатии кнопки осуществлялся поиск курса USD, EUR и результат выводился в memo (или edit).

Вот код программы, скопированный и немного подкорректированный с одного из исходников данного сайта. Но в нём поиск производится с только с подключённым интернетом:

Код:
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, idHTTP, Menus, ExtCtrls,Clipbrd, ComCtrls,INIFiles;
 
type TVal=record
  Typ:String;
  Edizm:String;
  Date:TDateTime;
  Value:Real;
  Incr:Real;
end;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  HTTP: TIdHTTP;
 
implementation
 
uses DateUtils;
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
 S: TStringList;
 P,I: integer;
 USD,EUR,AFS,pM,pP: string;
begin
 HTTP:=TIdHTTP.Create(nil);
 HTTP.HandleRedirects:=True;
 HTTP.ProtocolVersion:=pv1_0;
 HTTP.ProtocolVersion:=pv1_0;
 //
 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;
   // USD ЦБ РФ,1 Доллар США,27/02,31.6065,0.019
   // EUR ЦБ РФ,1 ЕВРО,27/02,34.0118,-0.1311
  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);
 Memo1.Text:='Курс валют на '+DateToStr(Now)+': '+#10#13+#10#10+'                                                                                                Доллар США: '+USD+#10#13+'                                           Евро: '+EUR+#10#13+'                                                     Английский фунт стерлингов:'+AFS;
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Memo1.Text:='Курс валют на '+DateToStr(Date)+':';
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;
 
end.

Что нужно исправить, чтоб вместо ссылки, мы указали путь к странице html и поиск работал без интернета, а только с открытой страницы?

Очень нужна помощь, заранее благодарю
Ответить с цитированием