Форум программистов, компьютерный форум CyberForum.ru

Создание RSS агрегатора - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 21:23     Создание RSS агрегатора #1
возникла срочная необходимость создать простенький RSS,который получает новости,а отображает их в дефолтном браузере,однако ни с чем подобным не сталкивался прежде.я не прошу готовый код,я лишь прошу подсказать мне какие шаги нужно сделать,если вы знаете уже сделанный пример,скиньте пожалуйста ссылку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 21:23     Создание RSS агрегатора
Посмотрите здесь:

Создание кода программы с нуля!! создание кода C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 17:37  [ТС]     Создание RSS агрегатора #21
тут файл и код
Вложения
Тип файла: zip Архив ZIP - WinRAR.zip (716 байт, 11 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
09.07.2012, 17:44     Создание RSS агрегатора #22
Пробовал открыть свой файл через браузер?
Миниатюры
Создание RSS агрегатора  
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 17:49  [ТС]     Создание RSS агрегатора #23
у меня сафари открывает
Вложения
Тип файла: rar архив.rar (2.7 Кб, 6 просмотров)
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
09.07.2012, 17:54     Создание RSS агрегатора #24
Нужно как-то делать проверку что xml не пуст.

Попробуй код из википедии http://ru.wikipedia.org/wiki/XML

Просмотреть код
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<recipe name="хлеб" preptime="5" cooktime="180">
  <title>Простой хлеб</title>
  <composition>
    <ingredient amount="3" unit="стакан">Мука</ingredient>
    <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
    <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
    <ingredient amount="1" unit="чайная ложка">Соль</ingredient>
  </composition>
  <instructions>
    <step>Смешать все ингредиенты и тщательно замесить.</step>
    <step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
    <!-- <step>Почитать вчерашнюю газету.</step> - это сомнительный шаг... -->
    <step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
  </instructions>
</recipe>


Добавлено через 3 минуты
у меня сафари открывает
А у меня Opera нет
Миниатюры
Создание RSS агрегатора  
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 17:59  [ТС]     Создание RSS агрегатора #25
я скопировал текст
Вложения
Тип файла: rar архив.rar (5.5 Кб, 8 просмотров)
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
09.07.2012, 18:08     Создание RSS агрегатора #26
Таже ошибка.

Вообщем проблема как я понимаю самом xml, плюс ты не делал проверки.

Добавлено через 6 минут
Наверное не правильно скачал или скопировал xml там в начале левые символы если их убрать, то открывается нормально.
Миниатюры
Создание RSS агрегатора  
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 18:21  [ТС]     Создание RSS агрегатора #27
а как их убрать?
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
09.07.2012, 18:22     Создание RSS агрегатора #28
а как их убрать?
А как они там появились?
Я просто в блокноте рукам вырезал и все.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 18:24  [ТС]     Создание RSS агрегатора #29
вот так я полчаю файл
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
#include<fstream>
#include<WinSock2.h>
#include<Windows.h>
#include<cstring>
#include <stdio.h>
#include<new>
 
using namespace std;
 
#pragma comment(lib, "ws2_32.lib")
 
WSADATA wsd;
SOCKET s;
struct sockaddr_in addr;
struct hostent * ip;
char query[128];
 
 
std::ofstream F("C:\\data.xml",std::ios::binary);
 
int main()
{
    
    WSAStartup(MAKEWORD(2,2),&wsd);
 
    int sock=socket(AF_INET,SOCK_STREAM,0);
    ip=gethostbyname("kp.ua");
    
    addr.sin_family=AF_INET;
    memcpy(&(addr.sin_addr),ip->h_addr_list[0],sizeof(addr.sin_addr));
    addr.sin_port=htons(80);
 
    connect(sock,(struct sockaddr*)&addr,sizeof(addr));
 
    char query[8096];
  
 
    char *buffer = new char[1024];
 
    char * p = new char[1024];
 
    strcpy(buffer,"");
    int k;
    strcpy(query,"GET /rss/feed.xml HTTP/1.0\r\nHost:kp.ua\r\n\r\n");
 
    send(sock,query,strlen(query),0);
    
 
    int h=1;
    while ((k=recv(sock,buffer,1024,0))>0)
    {
        p=strstr(buffer,"\r\n\r\n");
        if (p!=NULL && h)
        {
            F.write(p+4,k);
            h=0;
        }
        else
        {
        F.write(buffer, k);
        }
        strcpy(buffer,"");
    }
 
    F.close();
   
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
 
    return 0;
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
09.07.2012, 18:27     Создание RSS агрегатора #30
Ну я с сокетами не имел дела так что не подскажу...
Но думаю проблема в этом...
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 18:28  [ТС]     Создание RSS агрегатора #31
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    int h=1;
    while ((k=recv(sock,buffer,1024,0))>0)
    {
        p=strstr(buffer,"\r\n\r\n");
        if (p!=NULL && h)
        {
            //fwrite(p+4,sizeof(char),k,out);
           /* f.write(p+4,k);*/
            F.write(p+4,k);
            h=0;
        }
        else
        {
            //fwrite(buf,sizeof(char),k,out);
            /*f.write(buf,k);*/
            F.write(buffer, k);
        }
        strcpy(buffer,"");
    }
вот здесь наверно,но в чём я не знаю
Yandex
Объявления
09.07.2012, 18:28     Создание RSS агрегатора
Ответ Создать тему
Опции темы

Текущее время: 16:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru