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

Выбор загрузки файла - C++

Восстановить пароль Регистрация
 
Zheka13
31 / 31 / 2
Регистрация: 18.03.2011
Сообщений: 95
Завершенные тесты: 2
16.09.2012, 23:29     Выбор загрузки файла #1
Вот есть программа,в ней я сам указываю путь к файлу,в котором онапроизводит проверку.Суть в том что как можно сделать чтобы я указывал в строке например название сайта и оно мне его проверяло а не файл.

Добавлено через 32 минуты
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
 
void function(char *str,int s){
    char    *pch;
    char    html[5]="html", head[5]="head", title[6]="title", body[5]="body", table[6]="table", img[4]="img",
        a[2]="a", p[2]="p", div[4]="div", br[3]="br",td[3]="td";
    char    align[6]="align", valign[7]="valign", background[11]="background",bgcolor[8]="bgcolor",
        bordercolor[12]="bordercolor", colspan[8]="colspan", rowspan[8]="rowspan", height[7]="height",
        width[6]="width";
 
    pch = strtok (str,"<> =");
    while (pch != NULL)
    {
        if(strcmp(html,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,html);
        }
        else if(strcmp(head,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,head);        
        }
        else if(strcmp(title,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,title);       
        }
        else if(strcmp(body,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,body);        
        }
        else if(strcmp(table,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,table);       
        }
        else if(strcmp(img,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,img);     
        }
        else if(strcmp(a,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,a);       
        }
        else if(strcmp(p,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,p);       
        }
        else if(strcmp(div,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,div);     
        }
        else if(strcmp(br,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,br);      
        }
        else if(strcmp(td,pch)==0){
            printf("\nSTR #%d: Tag: %s",s,td);
            pch = strtok (NULL, "<> =");
                if(strcmp(align,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",align,pch);
                }else if(strcmp(valign,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",valign,pch);
                }else if(strcmp(background,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",background,pch);
                }else if(strcmp(bgcolor,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",bgcolor,pch);
                }else if(strcmp(bordercolor,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",bordercolor,pch);
                }else if(strcmp(colspan,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",colspan,pch);
                }else if(strcmp(rowspan,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",rowspan,pch);
                }else if(strcmp(height,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",height,pch);
                }else if(strcmp(width,pch)==0){
                    pch = strtok (NULL, "<> =");
                    printf("\n\n\tatribut: %s content: %s\n",width,pch);
                }
        }       
 
        pch = strtok (NULL, "<> =");    
    }
 
}
 
void main(void){
 
    char name[10],str[1000],buf;
    int s=1,access=0,i,size;
    FILE *f;
 
    while(access==0){
        printf("Input file name (html.txt):");
        scanf("%s",&name);
 
        if(!(f=fopen(name,"r"))){
            printf("Error\n\n");
        }
        else{
            access=1;
        }
    }
 
    while(!feof(f)){
        fgets(str,1000,f);
        size=strlen(str);
        function(str,s);
        s++;
    }
 
    fclose(f);
 
    printf("\n");
 
    getch();
}
Сам код,нужно чтобы вместо файла проверяла страницу в интернете.Как это реализовать.Подскажите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 23:29     Выбор загрузки файла
Посмотрите здесь:

C++ Прогресс загрузки файла с URLDownloadToFile
Меню загрузки C++
C++ Остановить процесс загрузки файла в память на конкретном адресе
Нужна помощь в сохранении графа в файл и его загрузки из файла C++
Ошибка сохранения/загрузки объекта с файла C++
Выбор файла для открытия C++
C++ Увеличение скорости загрузки из файла obj мешей в Directx
Рандомный выбор из файла: считать данные из txt C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2667 / 1678 / 158
Регистрация: 13.01.2012
Сообщений: 6,276
17.09.2012, 06:52     Выбор загрузки файла #2
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//------------------------------------------------------------------------------
#include <winsock>
#include <stdio.h>
#include <string>
#include <strstrea>
//------------------------------------------------------------------------------
int get_addr(char *host_name)
{
    int res = -1;
 
    HOSTENT *phe = gethostbyname(host_name);
    if (phe)
        for (int i = 0; i < 4; i++)
            ((BYTE *)&res)[i] = phe->h_addr_list[0][i];
 
    return res;
}
//------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    WSADATA wsa_data;
    if (WSAStartup(0x101, &wsa_data))
    {
        printf("WSAStartup error (%i)\n", WSAGetLastError());
        system("pause");
        return -1;
    }
 
    if (wsa_data.wVersion != 0x101)
    {
        printf("Bad WSA version (%i)\n", wsa_data.wVersion);
        system("pause");
        return -1;
    }
 
    SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (s == INVALID_SOCKET)
    {
        printf("socket error (%i)\n", WSAGetLastError());
        system("pause");
        return -1;
    }
 
    int use_host_name;
    char host_name[256];
    char host_ip[256];
    int host_port;
    char doc[256];
 
    printf("use_host_name (0 for host_ip or 1 for host_name): ");
    scanf("%i", &use_host_name);
 
    if (use_host_name)
    {
        printf("host_name: ");
        scanf("%s", host_name);
    }
    else
    {
        printf("host_ip: ");
        scanf("%s", host_ip);
    }
 
    printf("host_port: ");
    scanf("%i", &host_port);
 
    printf("doc (for example /index.htm or /): ");
    scanf("%s", doc);
 
    SOCKADDR_IN sa;
    sa.sin_family = AF_INET;
    sa.sin_port = htons(host_port);
    sa.sin_addr.S_un.S_addr = use_host_name? get_addr(host_name) : inet_addr(host_ip);
 
    printf("wait for server...\n");
 
    while (true)
    {
        int connect_res = connect(s, (SOCKADDR *)&sa, sizeof(sa));
        if (!connect_res) break;
 
        Sleep(250);
    }
 
    printf("connected\n");
 
    std::strstream message;
 
    message <<
    "GET http://" << (use_host_name? host_name : host_ip) << ":" << host_port << doc << " HTTP/1.1\r\n"
    "Host: " << (use_host_name? host_name : host_ip) << ":" << host_port << "\r\n"
    "Connection: Close\r\n"
    "\r\n";
 
    if (send(s, message.str(), message.pcount(), 0) == SOCKET_ERROR)
    {
        printf("send error (%i)\n", WSAGetLastError());
        system("pause");
        return -1;
    }
 
    char buffer[100000];
    int buffer_size = sizeof(buffer);
    buffer_size = recv(s, buffer, buffer_size, 0);
    if (buffer_size == SOCKET_ERROR)
    {
        printf("recv error (%i)\n", WSAGetLastError());
        system("pause");
        return -1;
    }
    printf("from_server: %s\n", buffer);
 
    //здесь разбирайте код страницы
 
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
    return 0;
}
Yandex
Объявления
17.09.2012, 06:52     Выбор загрузки файла
Ответ Создать тему
Опции темы

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