Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
21st
Апр
Пример получения даты и температуры с сайта
Posted by Chas under Пост-обзор
kangreon:
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;
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)