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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vantyz
54 / 54 / 2
Регистрация: 04.03.2012
Сообщений: 495
#1

Поиск в браузере - C++

14.08.2012, 21:40. Просмотров 666. Ответов 5
Метки нет (Все метки)

Привет,ребят не поможете сделать такую штуку,вообщем у нас есть страничка в браузере и в ней есть поисковая форма примерно такая

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
 
    <head>
    <title></title>
    </head>
    
     <body>
 
<form method="get" action="/search" target="_blank">
<input name="q" id="form-query" value="" placeholder="поиск по сайту"> <input type=submit value="искать"></form>
 
    </body>
</html>

также есть структура папок.Примерно такая:бабай-это основная папка,а в ней много разных папок,а уже в этих разных папках находятся файлы .txt.Ребят помогите написать обработчика формы html на c++, чтобы он искал эти файлы (txt) тока в папке бабай,и выводил содержимое файла txt.Помогите пожайлуста.Я просто не знаю может ли так работать html в связке с c++, или все что я сказал вообще на другом языке делается,подскажите плиз.

Я тут что то нашел может поможет ,а может нет.



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
// выводит на экран содержимое файла
#include "stdio.h"
#include "conio.h"
 
#define FNAME "numbers.txt\0" // имя файла
 
void main()
{
     char fname[20] = FNAME;
     FILE *f;     // текстовый файл
     char st[80];  // строка из файла
 
     printf("\nСодержимое файла %s\n", fname);
     puts("---------------------------------");
 
     // Открыть файл в режиме чтения (r) текста* (t)
     if ((f = fopen(fname, "rt")) == NULL)
     {
        printf("ошибка открытия файла для чтения");
        getch();
        return;
     }
 
     while (!feof(*))
     {
        fscanf(f,"%s", &st);
        printf("%s\n", st);
     }
     fclose(f);     // закрыть файл
     
     puts("---------------------------------");
     puts("\n для завершения нажмите<Enter>");
     getch();
}

И еще одну.


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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
#include <windows.h>
#include <commctrl.h>
 
#pragma comment(lib, "comctl32.lib")
 
enum {ID_BUTTON};
 
HWND hWndListView;
 
LRESULT CALLBACK WindowFunc(HWND hWnd,UINT message,
            WPARAM wParam,LPARAM lParam)
{
    switch (message)
    {   
        case WM_CREATE:
            CreateWindow(
                TEXT("STATIC"),
                TEXT("Search by any or all of the criterial below."),
                WS_CHILD | WS_VISIBLE,
                10,
                10,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("All or part of the file name:"),
                WS_CHILD | WS_VISIBLE,
                10,
                45,
                250,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                65,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("A word or phase in the file:"),
                WS_CHILD | WS_VISIBLE,
                10,
                85,
                250,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                105,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("Look in:"),
                WS_CHILD | WS_VISIBLE,
                10,
                125,
                100,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                145,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("BUTTON"),
                TEXT("Search"),
                BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP,
                200,
                200,
                80,
                30,
                hWnd,
                NULL,   
                NULL,
                NULL);
        break;
 
        case WM_COMMAND:
            switch(wParam)
            {
                case ID_BUTTON:
                    //MessageBox(NULL, TEXT("Search Results"), TEXT("About"), MB_ICONASTERISK | MB_OK);
                ShowWindow(hWndListView,SW_SHOW);
                break;
            }
            break;
 
    case WM_DESTROY:
            PostQuitMessage (0);
        break;
 
    default:
            return DefWindowProc (hWnd,message,wParam,lParam);
    }
        return 0;
}
 
int WINAPI WinMain (HINSTANCE hThisInst,HINSTANCE hPrevInst,
                LPSTR lpszArgs,int nWinMode)
{   
    WNDCLASS wcl;
    wcl.style = 0;
    wcl.lpfnWndProc = WindowFunc;
    wcl.cbClsExtra = 0;
    wcl.cbWndExtra = 0;
    wcl.hInstance = hThisInst;
    wcl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wcl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wcl.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wcl.lpszMenuName = NULL;
    wcl.lpszClassName = TEXT("Search");
 
    if (!RegisterClass (&wcl))
        return -1;
    HWND hWnd = CreateWindowEx (WS_EX_TOPMOST,
        wcl.lpszClassName,
        TEXT("Search Results"),
        WS_TILEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        HWND_DESKTOP,
        NULL,
        hThisInst,
        NULL);
    if (!hWnd)
        return -1;
 
    ShowWindow (hWnd,nWinMode);
    UpdateWindow (hWnd);
    MSG msg;
 
hWndListView = CreateWindow(
                WC_LISTVIEW,
 NULL,
                WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
    300,
    10,
    250,
    220,
    hWnd,
    NULL,
    NULL,
    NULL);
#ifdef UNICODE
    TCHAR szColumnHeader[3][12] = {TEXT("Name"), TEXT("In Folder"), TEXT("Size")};
#else
    char szColumnHeader[3][12] = {TEXT("Name"), TEXT("In Folder"), TEXT("Size")};
#endif
    int index;
    int iiWidth[3];
    LV_COLUMN lvC;
 
    ListView_SetExtendedListViewStyle(hWndListView, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
 
    iiWidth[0] = 60;
    iiWidth[1] = 100;
    iiWidth[2] = 400;
 
    lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
    lvC.fmt = LVCFMT_LEFT;
 
    for(index = 0; index < 3; index++)
{
        lvC.iSubItem = index;
        lvC.cx = iiWidth[index];
        lvC.pszText = szColumnHeader[index];
        ListView_InsertColumn(hWndListView,index,&lvC);
    }
 
    while(GetMessage(&msg, NULL, 0, 0) > 0)
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    return msg.wParam;
}
Добавлено через 30 минут
ВЫ хоть ссылки дайте или по ветке правильной направьте.

Добавлено через 20 минут
http://www.realcoding.net/articles/obrabotka-form.html если это поможет то вот что я еще нашел

Добавлено через 28 минут
наверно в html форме надо прописать это
HTML5
1
<form action="http://localhost/cgi-bin/primer.cgi" method=GET>
Добавлено через 2 часа 1 минуту
Ну как может кто просто напишет обработчик на php
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2012, 21:40     Поиск в браузере
Посмотрите здесь:

C++ Поиск. Бинарный поиск
C++ Отображение Desktop в браузере
C++ Чтение информации с открытой в браузере страницы!
Как можно изменить данные на браузере? C++
C++ Поменять заголовок в браузере Internet Explorer
Открыть ссылку в браузере по умолчанию C++
C++ Открытие ссылок в браузере в с++?
Как подключить программу к строке в браузере C++
C++ Запуск программы с++ в браузере
C++ Как из своей программы подставить пароль в форму в браузере?
C++ Как реализовать переход по новым ссылкам и сохранение страниц в браузере в автономном режиме?
C++ Открытие страницы в браузере в dev c

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex1OPS
100 / 99 / 20
Регистрация: 14.09.2010
Сообщений: 223
15.08.2012, 00:35     Поиск в браузере #2
На php (обработку формы не писал, ибо нужно увидеть форму целиком, а так же знать название файла, в который Вы поместите обработчик). Не совсем понял один момент в задании.

Цитата Сообщение от vantyz Посмотреть сообщение
чтобы он искал эти файлы (txt) тока в папке бабай
включая подкаталоги или нет?
если включая, то так:

PHP
1
2
3
4
5
6
7
8
9
10
/*
в переменную $search мы получаем из формы название файла,
который после ищем и выводим
*/
$dirname="Z:\\home\\retry.ru\\www\\babay\\*\\";
foreach(glob($dirname."*.txt") as $fn) {
    if (strpos($fn,$search)!==false) {
        foreach(file($fn) as $s) echo $s."<br>";
    }
}
если не включая, то так:
PHP
1
2
3
4
5
6
7
8
9
10
/*
в переменную $search мы получаем из формы название файла,
который после ищем и выводим
*/
$dirname="Z:\\home\\retry.ru\\www\\babay\\";
foreach(glob($dirname."*.txt") as $fn) {
    if (strpos($fn,$search)!==false) {
        foreach(file($fn) as $s) echo $s."<br>";
    }
}
vantyz
54 / 54 / 2
Регистрация: 04.03.2012
Сообщений: 495
16.08.2012, 13:35  [ТС]     Поиск в браузере #3
Alex1OPS Спасибо,форма будет стоять на веб странице index.html,а можешь пожалуйста сделать так,чтобы результататы поиска были на новой странице,и там была бы форма поиска.Обработчик хотелось бы вынести в отдельный файл php.Да поиск ведется с подкаталогами.

Добавлено через 10 часов 36 минут
Ну как)или это нельзя сделать ?

Добавлено через 16 часов 5 минут
Вот мне помогли объединить файл,а теперь не могли вы бы помочь сделать результаты поиска на отдельной странице,чтобы тока там была форма поиска с введенным запросом.Вот код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form method="post" action="search.php" target="_blank">
<input name="q" id="form-query" value="" placeholder="SEARCH">
<input type=submit value="SEARCH"></form>
<?
/*
в переменную $search мы получаем из формы название файла,
который после ищем и выводим
*/
$fn = $_POST['q'];
echo $fn;
$dirname="Z:\\home\\retry.ru\\www\\babay\\*\\";
foreach(glob($dirname."*.txt") as $fn) {
    if (strpos($fn,$search)!==false) {
        foreach(file($fn) as $s) echo $s."<br>";
    }
}
?>
Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
16.08.2012, 14:13     Поиск в браузере #4
vantyz, Вы в раздел PHP обратитесь за помощью. http://www.cyberforum.ru/php/
Думаю что там вам быстрее помогут
cohnett
Сообщений: n/a
17.08.2012, 12:16     Поиск в браузере #5
аааа че то не получается
vantyz
54 / 54 / 2
Регистрация: 04.03.2012
Сообщений: 495
17.08.2012, 14:59  [ТС]     Поиск в браузере #6
Мне хотелось бы сделать это на С++,а что для этого нужно,я слышал что то про CGI ,это надо использовать??.Или как можете объяснить.

Добавлено через 2 часа 3 минуты
Кто поможет проверить код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
main()
{
printf("Content-type:text/html\n\n");
 
printf("<html>");
printf("<head>");
printf("<title>search txt in browser</title>");
printf("</head>");
printf("body");
 
printf("<form method="get" action="/search" target="_blank">");
printf("<input name="q" id="form-query" value="" placeholder="поиск по сайту">");
printf("<input type=submit value="искать">");
printf("</form>");
 
printf("</body>");
printf("</html>");
}
Yandex
Объявления
17.08.2012, 14:59     Поиск в браузере
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru