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

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

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

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

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

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

C++ Разработать собственные функции динамического распределения памяти
C++ модули программы
C++ Функции и модули двумерной матрицы
Модули программы C++
Объявление функций - в каком месте кода объявлять собственные функции C++ Builder
C++ Собственные функции!!!
Ошибка при разбиении программы на файлы(модули) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
14331 / 9162 / 1321
Регистрация: 24.12.2010
Сообщений: 16,744
20.02.2011, 09:54     Решаем программы, пишем собственные модули и функции #2
Идея любопытная. У меня были кой-какие мелкие наработки на эту тему, чуть ли не в ДОСе.
Может набросаешь постановку задачи ?
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.02.2011, 13:06     Решаем программы, пишем собственные модули и функции #3
Цитата Сообщение от Egeni Посмотреть сообщение
Я против компилятора с готовыми програмными модулями
Да что вы! Ну давайте, попробуйте написать что-нибудь только с использованием операторов языка. Вы даже на экран это вывести не сможете, не воспользовавшись библиотечными функциями.
Раз любите программировать - принимайте правила игры. Сейчас всё строится на повторном использовании кода, где не на каждый новый проект пишут собственный двусвязный список с чуть изменённой функциональностью, а используют стандартный, сосредоточившись на высокоуровневой задаче, а не на её низкоуровневой реализации с вновь написанным под неё компилятором.

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

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

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

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

надо объединить их в одну но у меня не получается.. пробовал через функции но видимо не так делал
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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

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????
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.02.2011, 00:51     Решаем программы, пишем собственные модули и функции #9
Egeni, да, MicroSoft Visual C++
RAD - разработка Embarcadero - бывший борланд. В состав входят C++ Builder и Delphi, т.е. логическое развитие borland'овских наработок.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.02.2011, 07:15  [ТС]     Решаем программы, пишем собственные модули и функции #10
silent_1991, а побольше чтонибудь на килобайт 500-700 я уверен что разница будет еще больше
silent_1991
21.02.2011, 09:45
  #11

Не по теме:

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

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;
}


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

Добавлено через 4 минуты
Egeni, может быть вместо wininet.h будете использовать libcurl? Или Вы хотите чтобы программа работала только под Win?
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.02.2011, 09:59  [ТС]     Решаем программы, пишем собственные модули и функции #15
Евгений М. извините, я немного не понял как это, что за функцию надо переименовывать??
libcurl - у меня проблемы с подключением других библиотек, невыходит подключить или я делаю както не так.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
05.03.2011, 11:18  [ТС]     Решаем программы, пишем собственные модули и функции #16
Помогите пожалуйста!
Avazart
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,768
Записей в блоге: 17
23.11.2012, 02:08     Решаем программы, пишем собственные модули и функции #17
Цитата Сообщение от silent_1991 Посмотреть сообщение
, поддерживающем стандарт, компиляторе
А такие существуют в природе ?

Добавлено через 8 минут
Builder и curl
http://www.cyberforum.ru/blogs/131347/blog478.html
Скачивание из интернета

Но curl в сишном стиле что как-то не очень, куда проще Indy ...
Kastaneda
23.11.2012, 20:00
  #18

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А такие существуют в природе ?
Watcom вроде как имеет наиболее полную поддержку стандарта. Честно говоря не помню откуда у меня в голове эта информация, но похоже где-то я это прочитал.

Avazart
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,768
Записей в блоге: 17
23.11.2012, 20:06     Решаем программы, пишем собственные модули и функции #19
О тож смысл тогда иллюзии питать насчет стандарта...

Тут уже по ситуации на чем легче писать и что лучше знаешь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 11:14     Решаем программы, пишем собственные модули и функции
Еще ссылки по теме:

C++ Решаем задачу вместе
C++ Разбиение программы на модули!
Решаем уравнение C++
C++ WinAPI Dll модули и соответствующих функции из IMAGE_DIRECTORY_ENTRY_IMPORT для PE-файла шалят
C++ Как собственные типы (typedef) использовать в других модулях программы

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.11.2012, 11:14     Решаем программы, пишем собственные модули и функции #20
Цитата Сообщение от Avazart Посмотреть сообщение
А такие существуют в природе ?
До той или иной степени.

Цитата Сообщение от Avazart Посмотреть сообщение
О тож смысл тогда иллюзии питать насчет стандарта...
Чем в более полной мере компилятор поддерживает стандарт, тем сильнее мы можем полагаться на знание только одного авторитетного источника (или, если не знание, то хотя бы посмотреть в нём всегда можно).
Yandex
Объявления
24.11.2012, 11:14     Решаем программы, пишем собственные модули и функции
Ответ Создать тему
Опции темы

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