Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767

Программа для прогноза погоды: можно ли делать выбор города

08.02.2012, 02:07. Показов 5149. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ради интереса решил написать программу для просмотра прогноза погоды. информацию решил брать отсюда.
h ttp://informer.gismeteo.ru/getcode/xml.php?id=27612
там для каждого города есть .xml документ, который достаточно просто распарсить и все.
меня интересует вот что.
можно реализовать таким образом что пользователь вводил(в текстовое окно например) нужную ему страну, область и город, а программа делала бы выбор на странице в окошках выбора(тогда останется просто найти на странице ссылку на xml документ и все) не вбивая в программу все ссылки на все города?

Добавлено через 6 часов 13 минут
......
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2012, 02:07
Ответы с готовыми решениями:

Программа для прогноза погоды
Начал осваивать Windows Forms на C#. Возникли трудности с решением задачи: нужно сделать форму, в которой пользователь может выбирать город...

Рабочий API для вывода прогноза погоды на сайте
Здравствуйте. У кого есть рабочий API погоды ? Яндекс не работает, чего-то. Добавлено через 1 час 59 минут Нашёл способ как через...

Получение прогноза погоды с gismeteo.
Добрый день уважаемые программисты! Я новичок в делфи и никак не могу разобраться что не в порядке с моим кодом! Суть моей задачи такова...

6
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
08.02.2012, 02:41
С помощью чего вы собираетесь получать данные.. WebBrowers или HttpWebRequest ?
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
08.02.2012, 12:08  [ТС]
а чем лучше?я планировал использовать HttpWebRequest
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
08.02.2012, 12:51
HttpWebRequest лучше ,но WebBrowser проще
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
08.02.2012, 14:23  [ТС]
так а как выбор осуществить в списках на сайте?
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
08.02.2012, 16:43
Делается таким способом ,ставите себе сниффер рекомендую HttpAnalyzerStdV6 ,далее заходите на сайт через браузер ,выбираете нужные опции ,загружаете страницу ,получаете нужные данные .
И через сниффер вытаскиваете пакеты которые посылал ваш браузер .Дублируете действия через HttpWebRequest прикрепляя к нему составные пакеты данных , именно в них вся инфа о том какие опции вы выбрали .
По началу будет геморно )
Примеров на форуме как отправлять пакеты через HttpWebRequest хватает .
Удачи
1
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
11.02.2012, 00:56  [ТС]
решил упростить себе задачу и использовать google api для получения информации о погоде.
Но вот в чем вопрос.
При выполнении такого запроса
http://www.google.com/ig/api?weather=Полоцк
Появляется xml документ.
Тогда выходит что в таком случае
C#
1
2
3
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.google.com/ig/api?weather=Полоцк");
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
StreamReader read=new StreamReader(resp.GetResponseStream(),Encoding.GetEncoding(1251));
если выводить его(read) содержимое в консоль то он выводит нужный xml файл. Но если я делаю так
C#
1
2
3
XmlTextReader r=new XmlTextReader(read);
XmlDocument doc = new XmlDocument();
doc.Load(r);
то вылетает исключение о том что "потерян корневой элемент". Получается напрямую read нельзя передавать в конструктор XmlTextReader?

Добавлено через 3 часа 18 минут
ничего не придумал кроме записи StreamReader в файл .xml а затем из него считывать.

Добавлено через 1 час 11 минут
вот еще что
когда я считываю xml файл то я найдя заголовок "current_condition" начинаю брать данные из его узлов. но как сделать так чтобы он пройдя весь этот узел "current_condition" стал считывать другие узлы("forecast_conditions") но при этом это происходило вне цикла для "current_condition" то есть
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
XmlTextReader r = null;
        try
        {
            r = new XmlTextReader("file.xml");
            r.WhitespaceHandling = WhitespaceHandling.None;
            while (r.Read())
            {
                if (r.NodeType == XmlNodeType.Element)
                {
                    if (r.Name == "current_conditions")
                    {
                        string temp = "";
                        while (r.Read() && r.Name!="forecast_conditions")//здесь он начинает вложенные узлы "current_conditions" но после этого он продолжает считывать другие уже узлы, не входящие в "current_conditions".Дополнительный считывальщик вводить?
                        {
                            if (Current_Condtions.Contains(r.Name))
                            {
                                temp += r.GetAttribute("data");
                                temp += "\n";
                            }
                        }
                        Console.WriteLine(temp);
                    }
                }
            }
Добавлено через 18 часов 29 минут
короче нужно чтобы парсило только от
Code
1
<current_condition>....</current_condition>
Добавлено через 3 часа 16 минут
Сделал так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
                           string temp = "";
                    while (r.Read())
                    {
                        if (r.NodeType == XmlNodeType.Element)
                        {
                            if (r.Name == "current_conditions")
                            {
                                using (XmlReader rd = r.ReadSubtree())
                                {
                                    while (rd.Read())
                                    {
                                        temp += rd.GetAttribute("data");
                                        temp += "\n";
                                    }
                                }
                                break;
                            }
                        }
                    }
                    Console.WriteLine(temp);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2012, 00:56
Помогаю со студенческими работами здесь

Нужен совет по приложению прогноза погоды
Здравствуйте, думаю сделать приложение которое выдавало бы прогноз погоды(для начало один город, потом Россия), но не знаю из каких частей...

Ошибка при разборе прогноза погоды от yahooapis
Доброго времени суток. Объясните пожалуйста в чём ошибка. Заранее благодарю. using System; using System.Collections.Generic; using...

Вероятность ошибочного прогноза погоды в течение года
Доброе утро! Что-то совсем с этой задачей я замучился, подскажите, пожалуйста. Вероятность ошибочного прогноза погоды на следующий...

Парсинг Яндекс.Погоды | Опредленного города
Доброго времени суток. Как можно спарсить восход и закат? &lt;sunrise&gt;07:03&lt;/sunrise&gt; &lt;sunset&gt;15:50&lt;/sunset&gt; Как получить...

Прогноз погоды c автоматическим определением города
Господа, никто не подскажет какой виджет прогноза погоды на сайт? Нужно, чтобы он мог автоматически определять город


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru