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

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

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

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

14.08.2012, 21:40. Просмотров 682. Ответов 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
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2012, 21:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск в браузере (C++):

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле - C++
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим папкам пройтись и из каждой папки в этом файле достать...

Поиск циклов в графе. Поиск центра взвешенного графа - C++
В интернете, к сожалению, по этим вопросам не так уж много нашел. Можете посоветовать статью/пособие, где было бы подробно об этом написано?

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Поиск пикселя и поиск изображения на экране - C++
Переписываю код из clickermann для запуска его на C++. Мне нужны две функции которые выполняли бы сканирование экрана и поиск пикселя...

Отображение Desktop в браузере - 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>";
    }
}
1
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>";
    }
}
?>
0
Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
16.08.2012, 14:13 #4
vantyz, Вы в раздел PHP обратитесь за помощью. http://www.cyberforum.ru/php/
Думаю что там вам быстрее помогут
1
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>");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2012, 14:59
Привет! Вот еще темы с ответами:

Запуск программы с++ в браузере - C++
Интересует такой вопрос. Конечно, понятно, java апплеты или еще что-то подобное подойдет для этого больше. Но возможно ли написать...

Открытие ссылок в браузере в с++? - C++
задача такая: надо открывать одну и ту же ссылку на сайт через определенный интервал времени. как это делать в с++?

Открытие страницы в браузере в dev c - C++
Работаю на Dev c++ 4.9.9.2. Совсем не понимаю как можно сделать открытие ссылки (например vk.com) через приложение. То есть чтобы при...

Открыть ссылку в браузере по умолчанию - C++
Необходимо поставить куки с определённых сайтов в браузер по умолчанию. Для этого нужно открыть определённые страницы. В идеале...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.08.2012, 14:59
Ответ Создать тему
Опции темы

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