С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
#1

Решаем программы, пишем собственные модули и функции - C++

19.02.2011, 21:41. Просмотров 3276. Ответов 23
Метки нет (Все метки)

Решаем программы, пишем собственные модули и функции.

Давайте в этой теме будем писать совместно программы и их отлаживать.
Расскажу о себе я не профессиональный программист, я скорей новичек, работаю автомехаником занимаюсь ремонтом машин, но программировать я люблю как только появился компьютер и сеть. Еще в школе меня появилось желание писать программы.
Думаю что я такой не один и вместе мы сможем написать чтонибудь действительно интересное.
Как вы считаете можно ли вот так объединится и написать что-нибудь? Я думаю у каждого есть своя мечта.

[!]Сейчас я хотел бы написать программу анализа текстов как пример разбор (парсер) html страниц. В интернете посмотрел похожие программы, но они не то что я хотел бы.

Я против компилятора с готовыми програмными модулями потому что они увеличивают вес программы. Я против компилятора от микрософта Visual C. Незнаю плохо это или хорошо.. Builder компилит самые компактные программы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 21:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решаем программы, пишем собственные модули и функции (C++):

Разработать собственные функции динамического распределения памяти - C++
Разработать собственные функции динамического распределения памяти, используя в качестве “кучи” динамический массив, создаваемый обычной...

Объявление функций - в каком месте кода объявлять собственные функции - C++ Builder
Здравствуйте. Еще раз всех с наступившим. Появилась пара вопросов, наверное очень глупых по языку. Итак, первый. Пишу обычный...

Dll модули и соответствующих функции из IMAGE_DIRECTORY_ENTRY_IMPORT для PE-файла шалят - C++ WinAPI
Доброе утро. Имеется путь к исполняемому файлу notepad.exe. Необходимо вывести на экран dll модули и соответствующие функции. ...

В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты - C++
В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты. ...

Собственные функции!!! - C++
надо прогу по заданию. Ну оочень надо!!! Ни чего сложного, просто времени не хватает!!! Запутался в методичках Лабы сделал заранее а с...

Как собственные типы (typedef) использовать в других модулях программы - C++
Привет всем. С++ изучаю только, поэтому спотыкаюсь частенько. Сейчас возникла следующая проблема. Суть такая.. Пишу модульную...

23
Байт
Нарушитель
Эксперт C
16701 / 10965 / 1690
Регистрация: 24.12.2010
Сообщений: 21,409
20.02.2011, 09:54 #2
Идея любопытная. У меня были кой-какие мелкие наработки на эту тему, чуть ли не в ДОСе.
Может набросаешь постановку задачи ?
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
20.02.2011, 13:06 #3
Цитата Сообщение от Egeni Посмотреть сообщение
Я против компилятора с готовыми програмными модулями
Да что вы! Ну давайте, попробуйте написать что-нибудь только с использованием операторов языка. Вы даже на экран это вывести не сможете, не воспользовавшись библиотечными функциями.
Раз любите программировать - принимайте правила игры. Сейчас всё строится на повторном использовании кода, где не на каждый новый проект пишут собственный двусвязный список с чуть изменённой функциональностью, а используют стандартный, сосредоточившись на высокоуровневой задаче, а не на её низкоуровневой реализации с вновь написанным под неё компилятором.

Цитата Сообщение от Egeni Посмотреть сообщение
Builder компилит самые компактные программы
Как ни странно, сейчас никто на размере не зацикливается. Болранд наплевал на стандарт несколько лет назад и код, написанный на нём, не скомпилируется ни на одном другом, поддерживающем стандарт, компиляторе. А это говорит о многом.
0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
20.02.2011, 23:05  [ТС] #4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Болранд наплевал на стандарт несколько лет назад и код, написанный на нём, не скомпилируется ни на одном другом, поддерживающем стандарт,
это я ощутил что появляется такая схема обмана как Си микрософта и Си борланда отличаются.. и все это от разных библиотек.. до ms меня вообще не радует с их ричтекстами и пробелами и мусором для увеличения кода
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
20.02.2011, 23:12 #5
Egeni, майкрософт намного более соответствует стандарту, нежели борланд. Про размер я уже отписался. Вы так пишите, будто бинарник от майкрософта на 300 метров больше бинарника от борланда. Не нравится это - пишите на GCC.

Добавлено через 3 минуты
Цитата Сообщение от Egeni Посмотреть сообщение
это я ощутил что появляется такая схема обмана как Си микрософта и Си борланда отличаются.. и все это от разных библиотек..
Не пишите ерунду на счёт схем обмана. Есть стандарт. Кто-то ему соответствует в большей мере, кто-то в меньшей. GCC обычно сильнее всего удовлетворяет стандарту. А борланд меньше всего. Это факт. Часто происходит так, что код, откомпилированный майрософтом, компилится на GCC, и наоборот, но его напрочь отказывается глотать борланд. При этом код стандарту соответствует.
0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
20.02.2011, 23:18  [ТС] #6
да нет просто чем больше вес программы тем больше она грузит процессор, а я уверен что это не последнее чему можно научить мой компьютер...

Спрашивали про постановку задачи, отвечаю
Алгоритм программы следующий 1 берем список ключевых слов и сайтов.
2. заходим на страницу скачиваем ее и достаем оттуда заголовок и текст- кладем это в базу данных или файл.
3. текст делим на ссылки(ссылки внешние и на картинки) и заносим их в конец нашего поиска.
и так в цикле заходим на все страницы что оно найдет и ищем ключевики. все что найдет подходящее запросу оно естественно сохраняет и подводит какието результаты.

и вот в чем вопрос. есть 1 программа которая скачивает страницу и может сохранять на жесткий диск...
и есть 2 программа которая осуществляет поиск по файлу и достает оттуда заголовки.

надо объединить их в одну но у меня не получается.. пробовал через функции но видимо не так делал
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
20.02.2011, 23:46 #7

Не по теме:

Egeni, да, видимо майкрософт нацелена именно на то, чтобы её продуктами не пользовались, потому она засерает ваш код мусором, грузящим процессор... Звучит логичнее некуда.



Добавлено через 12 минут

Не по теме:

Что ж, только что собрал вот этот код в MSVC2010 и в RAD Studio2010:

C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    std::cout << "Hello, World!" << std::endl;
 
    return 0;
}
Результаты:
MSVC2010: 37KB
RAD Studio 2010: 173KB

0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.02.2011, 00:45  [ТС] #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
RAD Studio 2010
Цитата Сообщение от silent_1991 Посмотреть сообщение
MSVC2010
VC это что Visual C++?? а что тогда RAD????
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
21.02.2011, 00:51 #9
Egeni, да, MicroSoft Visual C++
RAD - разработка Embarcadero - бывший борланд. В состав входят C++ Builder и Delphi, т.е. логическое развитие borland'овских наработок.
0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.02.2011, 07:15  [ТС] #10
silent_1991, а побольше чтонибудь на килобайт 500-700 я уверен что разница будет еще больше
0
silent_1991
21.02.2011, 09:45
  #11

Не по теме:

Egeni, ага... Не в пользу борланда...

0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.02.2011, 19:50  [ТС] #12
вернемся к программированию... вот эти два кода

1. открываем и сохраняем страницу(но хотелось бы не сохранять целиком, а разбирать только необходимое)
1 программа

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
#include <vcl.h>
 
#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet.lib")
 
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
 
#define URL "www.rsdn.ru"
#define DOC "article/files/libs/crashrpt.xml"
 
 
int main(int argc, char* argv[])
{
    bool ok = false;
 
    // инициализируем WinInet
    HINTERNET hInternet =
        ::InternetOpen(
            TEXT("WinInet Test"),
            INTERNET_OPEN_TYPE_PRECONFIG,
            NULL,NULL,
            0);
 
    if (hInternet != NULL) {
        // открываем HTTP сессию
        HINTERNET hConnect =
            ::InternetConnect(
                hInternet,
                TEXT(URL),
                INTERNET_DEFAULT_HTTP_PORT,
                NULL,NULL,
                INTERNET_SERVICE_HTTP,
                0,
                1u);
 
        if (hConnect != NULL) {
            // открываем запрос
            HINTERNET hRequest =
                ::HttpOpenRequest(
                    hConnect,
                    TEXT("GET"),
                    TEXT(DOC),
                    NULL,
                    NULL,
                    0,
                    INTERNET_FLAG_KEEP_CONNECTION,
                    1);
 
            if (hRequest != NULL) {
                // посылаем запрос
                BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0);
                if (bSend) {
                    // создаём выходной файл
                    ofstream fnews("news.html",ios::out|ios::binary);
                    
//я понимаю что гдето здесь я должен проверять файл на совпадения
//но где именно и как это сделать??                    
                    
                    if (fnews.is_open())
                    for (;;) {
                        // читаем данные
                        char  szData[1024];
                        DWORD dwBytesRead;
                        BOOL bRead =
                            ::InternetReadFile(
                                hRequest,
                                szData,sizeof(szData)-1,
                                &dwBytesRead);
 
                        // выход из цикла при ошибке или завершении
                        if (bRead == FALSE  ||  dwBytesRead == 0)
                            break;
 
                        // сохраняем результат
                        szData[dwBytesRead] = 0;
                        fnews << szData;
                        cout << szData;
 
                        ok = true;
                    }
                }
                // закрываем запрос
                ::InternetCloseHandle(hRequest);
            }
            // закрываем сессию
            ::InternetCloseHandle(hConnect);
        }
        // закрываем WinInet
        ::InternetCloseHandle(hInternet);
    }
 
    // для полного счастья, запускаем считанную страничку
//  if (ok)
//      system("start news.html");
    system("pause");
 
    return 0;
}



2 разбираем файл и достаем заголовки H1(этого так и не хватает первой программе)
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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <fstream>
using std::ifstream;
 
int main () {
        char    bStr[] = "<H1>",
                        eStr[] = "</H1>",
                        ifName[] = "E:\\dostat.txt";
        ifstream ifst;
        int i;
 
        ifst.open(ifName);
        if(!ifst)
                exit(-1);
 
        for(;!ifst.eof();){
                for(i=0;!ifst.eof()&&ifst.get()==bStr[i];i++);
                ifst.unget();
                if(!bStr[i]){
                        for(;;){
                                for(i=0;!ifst.eof()&&ifst.get()==eStr[i];i++);
                                if(!eStr[i])
                                        break;
                                for(;i>=0;i--)
                                        ifst.unget();
                                cout<<(char)ifst.get();
                        }
                        cout<<endl<<"--------------------------------"<<endl;
                }
                else
                        ifst.get();
        }
        cin.get();
        return 0;
}


прошу помощи или практического совета
Итак внимание знатоки, вопрос: Как будет выглядеть рабочая программа если объединить эти два кода в одну программу, второй код оформив как функцию??
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
22.02.2011, 04:28 #13
смешаны C и C++
попробуй поюзать string для символьных массивов, раз уж у тебя больше предрасположенность к C++
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
22.02.2011, 05:44 #14
Цитата Сообщение от Egeni Посмотреть сообщение
Как будет выглядеть рабочая программа если объединить эти два кода в одну программу, второй код оформив как функцию??
Предлагаю один из файлов взять как *.h файл и с помощью #include его подключить.
Естественно нужно переименовать функцию.

Добавлено через 4 минуты
Egeni, может быть вместо wininet.h будете использовать libcurl? Или Вы хотите чтобы программа работала только под Win?
0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.02.2011, 09:59  [ТС] #15
Евгений М. извините, я немного не понял как это, что за функцию надо переименовывать??
libcurl - у меня проблемы с подключением других библиотек, невыходит подключить или я делаю както не так.
0
25.02.2011, 09:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2011, 09:59
Привет! Вот еще темы с ответами:

Пишем модули сами! - Joomla
Добрый вечер, ребята! Подскажите пожалуйста хорошую книгу по joomle 2.5,3 ! Нужно в жатые сроки освоить искусство написания модулей! :)

Пишем скрипт партнерской программы вместе. - PHP
Пишем скрипт партнерской программы вместе. Отписывайтесь кто может: ООП+php+mvc без framework'ov

Cтруктура программы. Где пишем основную часть кода? - C#
Добрый всем денек, есть ламерский вопрос, не пинайте ногами. Создаю проект C# в VS 2005, стандартный код, создаваемый по умолчанию вы...

Можно ли продавать собственные программы? - Visual Studio
Здравствуйте! Вопрос по поводу лицензии Microsoft Visual Studio C# и Sql Server Express. Могу ли я, продавать программу, которая написана...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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