Доброго времени суток. Такое дело. Есть код:
Функция парсинга:
Код:
function Pars(T_, ForS, _T: string): string;
var
a,b:integer;
begin
Result:='';
if (T_='') or (ForS='') or (_T='') then
Exit;
a:=Pos(T_, ForS);
if a = 0 then
Exit
else
a:=a + Length(T_);
ForS:=Copy(ForS, a, Length(ForS) - a + 1);
b:=Pos(_T, ForS);
if b > 0 then
Result:=Copy(ForS, 1, b - 1);
end;
Есть процедура FormCreate:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
Weather:=IdHTTP1.Get('http://www.accuweather.com/ru/ru/chelyabinsk/292332/current-weather/292332');
Ta:= (Pars('<span class="temp">', Weather, '<span>'));
IdHTTP1.Disconnect;
Label1.Caption:= ('Температура: '+(Ta)+' °C');
end;
Все работает нормально. И есть Таймер с аналогичным кодом:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Weather:=IdHTTP1.Get('http://www.accuweather.com/ru/ru/chelyabinsk/292332/current-weather/292332');
Ta:= (Pars('<span class="temp">', Weather, '<span>'));
IdHTTP1.Disconnect;
Label1.Caption:= ('Температура: '+(Ta)+' °C');
end;
Таймер с заданным интервалом должен обновлять температуру в Label, но вместо температуры с сайта при обновлении получаю какое-то плюсовое значение (15,20,21 и т.п.)
Таких цифр на странице сайта даже нет. Отсюда вопрос: почему при запуске программы код работает нормально и я получаю то значение, которое указанно на странице сайта, а при обновлении какие-то совершенно левые цифры? Уже второй день не могу понять причину. Если есть какие-то предположения, прошу поделиться.