Парсер цен на топливо за текущий день

// Считывание файла
string[] lines = File.ReadAllLines(filename);

lbl95.Text += «: » + lines[0] + «р.»;
lbl92.Text += «: » + lines[1] + «р.»;
lblDt.Text += «: » + lines[2] + «р.»;
}

private void panel1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(
e.Graphics, e.ClipRectangle,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDark), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDarkDark), 1, ButtonBorderStyle.Solid);
}

private void panel2_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(
e.Graphics, e.ClipRectangle,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDark), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDarkDark), 1, ButtonBorderStyle.Solid);
}

private void panel3_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(
e.Graphics, e.ClipRectangle,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlLightLight), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDark), 1, ButtonBorderStyle.Solid,
Color.FromKnownColor(KnownColor.ControlDarkDark), 1, ButtonBorderStyle.Solid);
}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(«https://sitkodenis.ru»);
}
}
}

Чтобы каждый раз не обращаться на сайт и тем самым сэкономить ресурсы, информацию о ценах на бензин сохраняем в файл dsGasPriceParser в текущем каталоге программы. Это обычный текстовый файл, в котором цена записаны каждая с новой строки.

Путь к файлу хранится в поле filename, а источник, откуда берется информация располагается в поле sourceUrl.

Событие panel1_Paint() необходимо лишь для отрисовки элементов управления Panel (можно просто удалить данное событие, тем более, если не используете данные элементы управления в своей программе).

Событие Form1_Load() обрабатывается при загрузке единственной формы и проверяет, если текущая дата совпадает с датой создания файла, то просто считываем данные из файла dsGasPriceParser. Однако, если дата создания отличается, то выполняется метод getData(sourceUrl).

Метод getData() используется для получения данных о ценах на топливо. Здесь как можно увидеть в переменной pattern хранится шаблон для поиска данных. Все найденные строки все еще содержат не нужную информацию, поэтому мы извлекаем только цены math.Groups[5].ToString(). Кстати, можно текст АИ-95 и т.п. получить из спарсенных данных. Я посчитал все это излишним и решил хранить только цены. Дополнительно задаем форматирование для наших цен, чтобы все выглядело одинаково. При необходимости, сохраняем изменения или создаем файл с ценами на топливо.

Метод getRequest() — стандартное обращение к странице для получения ее содержимого.

Для удобства выкладываю исходный код программы: dsGasPriceParser.

Вот таким не сложным путем был сделан парсер цен на топливо за текущее число. При извлечение информации можно было еще отсечь лишнее, но я уж оставил так как есть. Тем более работа с регулярными выражениями — это уже отдельная история.

Спасибо за внимание и до новых встреч!

If you have found a spelling error, please, notify us by selecting that text and tap on selected text.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: