Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2007, 11:16   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Поиск в HTML-коде

Добрый день всем. Проблема такая...
Загружаю в memo из интернета исходный код страницы. Где-то в середине страницы есть такая строка:
Код:
<tr class=tmain height=16><td>USD<td>Доллар США<td align=right>2145.00<td align=right>2145.00
Это курс доллара. Вопрос: Как передать последнее значение (2145.00) в переменную? Пробую манипулировать функциями copy() и pos(). Что-то не получается.
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.07.2007, 11:27   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

саму эту строчку
<tr class=tmain height=16><td>USD<td>Доллар США<td align=right>2145.00<td align=right>2145.00
вырезать из кода получается ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.07.2007, 11:46   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

В том и проблема, что номер строки может меняться.
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.07.2007, 12:19   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

что уникального в этой строке ?
вобщем дай мне url для get-а я тебе скину функцию
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.07.2007, 12:47   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

http://www.nbrb.by
Таблица с курсами слева вверху. Вот этой функцией я загружаю исх. код в Memo
uses wininet;
Код:
function DownloadURL(const aUrl: string; aMemo: TMemo): Boolean;
var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  lpBuffer: array[0..1024 + 1] of Char; 
  dwBytesRead: DWORD; 
begin 
  Result := False;
  hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try 
    if Assigned(hSession) then 
    begin 
      hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); 
      if Assigned(hService) then 
        try 
          while True do 
          begin 
            dwBytesRead := 1024; 
            InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); 
            if dwBytesRead = 0 then break; 
            lpBuffer[dwBytesRead] := #0;
            aMemo.Lines.Add(lpBuffer);
          end;
          Result := True;
        finally
          InternetCloseHandle(hService);
        end; 
    end; 
  finally
    InternetCloseHandle(hSession);
  end; 
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.07.2007, 12:57   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ок, интересует курс валют именно доллара так ? и на какой день, на первый или на второй ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.07.2007, 13:21   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

На второй. Т.е. последний на сегодня
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.07.2007, 13:38   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
unit Unit14;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  StdCtrls;

type
  TForm14 = class(TForm)
    Button1: TButton;
    ht1: TIdHTTP;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;

implementation

{$R *.dfm}

procedure TForm14.Button1Click(Sender: TObject);
var s:string;
i:integer;
begin
s:=ht1.Get('http://www.nbrb.by/');
s:=copy(s,pos('USD',s),length(s)-pos('USD',s));
s:=copy(s,pos('right',s)+6,length(s)-pos('right',s)-6);
s:=copy(s,pos('right',s)+6,length(s)-pos('right',s)-6);
s:=copy(s,1,pos('<tr',s)-3);
s:=stringreplace(s,chr(160),'',[rfreplaceall]);
s:=stringreplace(s,'.',',',[rfreplaceall]);
end;

end.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.07.2007, 14:05   #9
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Квэнди, большое спасибо. Я твой должник.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.08.2007, 01:33   #10
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
http://www.nbrb.by
Таблица с курсами слева вверху. Вот этой функцией я загружаю исх. код в Memo
uses wininet;
а что какая функция большая, сейчас можно заюзать что-то типа этого

Код:
  RichEdit1.Text := http.Get(ComboBox1.text);
ComboBox1.text - это юрл
Alar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде nikleb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 10.03.2008 22:48
Что в коде не так? Simply-Art Общие вопросы Delphi 3 08.07.2007 19:32
Поиск ключевых слов в html коде NEOkill Работа с сетью в Delphi 2 02.03.2007 00:33