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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 15:56   #1
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию Обработка хтмл кода

Хочу сделать прогу погоды, но не знаю за что зацепится в коде, наше код day_0 но он ажется ток у удного блока, может кто поможет
gufon вне форума Ответить с цитированием
Старый 21.03.2011, 17:49   #2
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

А с какого сайта берется погода?

Последний раз редактировалось kangreon; 21.03.2011 в 18:12.
kangreon вне форума Ответить с цитированием
Старый 21.03.2011, 19:07   #3
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

http://www.meteoprog.ua/ru/weather/Yenakievo/ блин вроде писал))))))))))

Последний раз редактировалось gufon; 21.03.2011 в 19:11.
gufon вне форума Ответить с цитированием
Старый 21.03.2011, 22:28   #4
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Вот пример получения Даты и Температуры. Все остальное парсится по аналогии.
Код:
type
  TFormatP = record
    day: string;
    temp: array[0..3] of string;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  http: TIdHTTP;
  Page: string;
  k, l, m: Integer;

  day: string;

  pogoda: array of TFormatP;
  ms: TMemoryStream;
  sl: TStringList;
begin
  {
    Загрузка страницы с погодой.
    Использую TMemoryStream для того,
    чтобы кирилица не отображалась
    вопросиками.
  }
  http := TIdHTTP.Create;
  ms := TMemoryStream.Create;
  http.Get('http://www.meteoprog.ua/ru/weather/Yenakievo/',ms);
  ms.Position := 0;
  sl := TStringList.Create;
  sl.LoadFromStream(ms);
  ms.free;
  page := sl.Text;
  sl.Free;

  {
    Выполняется поиск погоды на все доступные дни
  }
  k := 0;
  while PosEx('<!-- begin w.block 1', Page, k) <> 0 do
  begin
    k := PosEx('<!-- begin w.block 1', Page, k);
    k := PosEx('px;">', Page, k) + 5;
    // Копируется день
    day := Copy(Page, k, PosEx('</', Page, k) - k);
    l := Length(pogoda);
    SetLength(pogoda, l + 1);
    pogoda[l].day := day;

    // Копирование температур
    for m := 0 to 3 do
    begin
      k := PosEx('wforecast-cell', Page, k);
      k := PosEx('>', Page, k) + 1;
      pogoda[l].temp[m] := Copy(Page, k, PosEx('&', Page, k) - k);
    end;
  end;

  {
    Вывод результата
  }
  l := Length(pogoda) - 1;
  for k := 0 to l do
  begin
    Memo1.Lines.Add('Погода на '+ UTF8Decode(pogoda[k].day));
    Memo1.Lines.Add(#9'Ночь: '+ pogoda[l].temp[0]);
    Memo1.Lines.Add(#9'Утро: '+ pogoda[l].temp[1]);
    Memo1.Lines.Add(#9'День: '+ pogoda[l].temp[2]);
    Memo1.Lines.Add(#9'Вечер: '+ pogoda[l].temp[3]);
  end;
end;
kangreon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение хтмл кода Cpluser Общие вопросы .NET 8 14.03.2010 00:06
Обработка html кода Черничный Работа с сетью в Delphi 8 03.12.2009 16:56
Можно ли как-то ускорить выполнение этого кода (обработка примечаний)? motorway Microsoft Office Excel 2 23.07.2009 17:06
хтмл kaviga Помощь студентам 1 20.03.2009 19:14
Сокеты, получение кода HTML страницы и обработка пропсов ABTOP C/C++ Сетевое программирование 5 19.10.2008 11:49