Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: Infinite Retrieval
Дата сообщения: 22.11.2009 19:31
http://otvety.google.ru/otvety/thread?table=%2Fotvety%2F%3Fhl%3Dru&tid=582c4adda7586e7c&hl=ru
Можно ли перегружать оператор [], для n-мерных массивов?
Автор: ya_Mickey
Дата сообщения: 23.11.2009 05:39
KChernov

Цитата:
Попрошу без оскорблений!

Это оскорбление? Сорри, тада.


Цитата:
1. НТФС - тоже БД, так что хранить в файловой иерархии (если уж данных НАСТОЛЬКО много, что скорость доступа к ним становится критична) тоже не медленно. А если их действительно много - лучше своя БД - хоть тот же SQLlite хотя бы;
2. Так ли это надо?
3. Если настроек мало, то зачем это? А если много - уж лучше своя БД.
В общем неизвестно, чего там больше - плюсов или минусов.


Исключая философские вопросы типа "кому-то чье-то, а кесарю кесарево", стоит заметить, что в NTFS все не так просто. Например в последних творениях Microsoft как-то очень загадочно стали раздавать разрешения на каталоги. В результате необходимо проводить загадочные изыскания на тему "Куда это все приткнуть, чтобы все могли получить доступ.
Кроме того, на уровне API работать с реестром слегонца легче.

В общем, это не "священная война", и даже не "народная". Просто я пробовал оба варианта. Остановился на реестре. Показалось проще.
Если есть обратный опыт - давай разберем в деталях. Хотя тема опять же флеймовая (ИМХО).
Автор: KChernov
Дата сообщения: 23.11.2009 08:00
ya_Mickey

Цитата:
Это оскорбление?

Имхо при такой транскрипции любое слово становится ругательным.
Да и вообще вешание ярлыков не добавляет конструктивности.


Цитата:
В общем, это не "священная война", и даже не "народная". Просто я пробовал оба варианта. Остановился на реестре. Показалось проще.

Проще в реализации?

На самом деле я просто не хочу привязывать свои приложения к конкретной оси, а использование реестра как раз таковым и является. А то "вдруг завтра война" соберусь таки переходить на Линукс, а всё надо переписывать...
Автор: ya_Mickey
Дата сообщения: 23.11.2009 09:38
KChernov

Цитата:
На самом деле я просто не хочу привязывать свои приложения к конкретной оси, а использование реестра как раз таковым и является. А то "вдруг завтра война" соберусь таки переходить на Линукс, а всё надо переписывать...

Ну в таком разрезе понятно... Тока эта... ГУИ в POSIX не входит... Или ты на чем-то кроссплатформенном ваяешь? Тогда там должно быть средство для конфигурирования
Автор: Qraizer
Дата сообщения: 24.11.2009 05:06

Цитата:
В результате необходимо проводить загадочные изыскания на тему "Куда это все приткнуть, чтобы все могли получить доступ.
А какие проблемы? All Users.
Автор: ya_Mickey
Дата сообщения: 24.11.2009 05:23
Qraizer

Цитата:
А какие проблемы? All Users.

Все или избранные.
Автор: KChernov
Дата сообщения: 24.11.2009 08:58

Цитата:
Тока эта... ГУИ в POSIX не входит... Или ты на чем-то кроссплатформенном ваяешь? Тогда там должно быть средство для конфигурирования

В принципе Java, .Net и QT - более менее кросплатформенные.
Но я пока без гуёв обхожусь, а там с переносимостью всё бм.
Хотя до гуёв тоже надо добраться.
Автор: ya_Mickey
Дата сообщения: 24.11.2009 09:41
KChernov

Цитата:
Java
- переносима без вопросов. Только вот с ГУЕм у него даже пару лет назад было не очень.

Цитата:
.Net
- переносима в качестве Mono. Пробовал. Пока простые вещи, не требующие переопределения WndProc - все нормально, как только начинаются подключения внешних dll-ек, естественно все становится ОЧЕНЬ плохо. Пока этого нет - вообще волосы шевелятся, когда берешь виндовый exe-шник, скармливаешь его Mono и ОН РАБОТАЕТ!!!

Цитата:
QT
- а чего голову морочил? Вот по этой теме я еще не слышал жалоб ни по производительности, ни по переносимости. Более того, те кто начинают ей пользоваться становятся ее активными фанатами. Жаль я не из их числа



Автор: KChernov
Дата сообщения: 24.11.2009 13:48
ya_Mickey

Цитата:
а чего голову морочил?

Да я как раз сейчас размышляю, куда податься...
Автор: karakurt2
Дата сообщения: 24.11.2009 17:33
ya_Mickey
KChernov
ещё glib забыли, как прямой конкурент QT
Автор: Qraizer
Дата сообщения: 25.11.2009 03:05
ya_Mickey

Цитата:
Qraizer

Цитата:А какие проблемы? All Users.

Все или избранные.
В смысле?
Автор: ya_Mickey
Дата сообщения: 25.11.2009 05:55
Qraizer

Цитата:
В смысле?

Надо дать ACL на доступ к элементам конфигурации (возможно с гранулярностью на каждый элемент). Не, я понимаю, что проблема немного вымышленная, но вдруг...
При этом ACL должны различаться от пользователя к пользователю.
Автор: KChernov
Дата сообщения: 25.11.2009 09:43
karakurt2

Цитата:
ещё glib забыли, как прямой конкурент QT

А он разве ГУИ поддерживает?
Для консольных утилит конкурент - да.
Автор: karakurt2
Дата сообщения: 25.11.2009 17:59
KChernov

конечно, поддерживает. на самом деле я имел в виду все прилагающиеся библиотеки из следующего списка:

cairo
libart
GTK+
pango
atk
fontconfig
...

только по собственной лени не стал оглашать весь список.
Автор: Qraizer
Дата сообщения: 26.11.2009 06:22
ya_Mickey, ну коли кесарю кесарево, то да. Но вопрос-то был
Цитата:
Например в последних творениях Microsoft как-то очень загадочно стали раздавать разрешения на каталоги. В результате необходимо проводить загадочные изыскания на тему "Куда это все приткнуть, чтобы все могли получить доступ.
"Профиль" All Users как раз для этого полного доступа всем.
Автор: ya_Mickey
Дата сообщения: 26.11.2009 06:27
Qraizer
Ну еще изначальнее вопрос ставился так, что человек предпочитает перенос программы по принципу "скопировал и пошел". А тут оказывается надо еще прошерстить и все профили пользователей.
Да и эта... После того как Microsoft лихо всех кинул в висте тупо запретив просто так писать в Program Files можно ожидать от них всего чего угодно. Как грится, "ну кто бы мог подумать, что прога не сможет сохранять свои данные у себя?".
Автор: KChernov
Дата сообщения: 26.11.2009 16:10
ya_Mickey

Цитата:
После того как Microsoft лихо всех кинул в висте тупо запретив просто так писать в Program Files можно ожидать от них всего чего угодно. Как грится, "ну кто бы мог подумать, что прога не сможет сохранять свои данные у себя?".

Вот-вот, и после этого связываться с реестром - они и там что-нибудь придумают
А вообще в данной ситуации правильным для МС решением было бы, чтобы когда прога пишут в свою папку, то автоматом создаётся папка в разрешённом месте, и прога работает думая, что она так к себе и пишет
Но видимо для МС это слишком сложно
Автор: terminat0r
Дата сообщения: 26.11.2009 17:26

Цитата:
Вот-вот, и после этого связываться с реестром - они и там что-нибудь придумают

Под wine реестр хранится в обыкновенном текстовом файле. Но это не мешает под ним добиватся очень часто большей производительности программ чем в родной ОС от майкрософта.
Автор: Qraizer
Дата сообщения: 27.11.2009 06:36

Цитата:
После того как Microsoft лихо всех кинул в висте тупо запретив просто так писать в Program Files можно ожидать от них всего чего угодно. Как грится, "ну кто бы мог подумать, что прога не сможет сохранять свои данные у себя?".
Хм. Вообще-то, Microsoft никогда не говорила, что в Program Files всегда можно писать. Хоть и под XPёй туда писать могут владельцы и администраторы. Так что глупо ожидать, что "у себя" можно будет сохранять данные из-под простого пользователя.
Автор: ya_Mickey
Дата сообщения: 27.11.2009 08:02
Qraizer

Цитата:
Хм. Вообще-то, Microsoft никогда не говорила, что в Program Files всегда можно писать. Хоть и под XPёй туда писать могут владельцы и администраторы. Так что глупо ожидать, что "у себя" можно будет сохранять данные из-под простого пользователя

Ну да. Это так. Причем я не говорю, что это плохо. Наоборот, я считаю, что они правильно сделали. Наконец-то мои знакомые перестанут засорять весь комп своими файлами, а потом их искать по всем своим винтам.
KChernov

Цитата:
Вот-вот, и после этого связываться с реестром - они и там что-нибудь придумают

А вот насчет реестра есть особое указание от MS, что кто и куда может писать. Там это регламентировано в отличие от...

Цитата:
Под wine реестр хранится в обыкновенном текстовом файле. Но это не мешает под ним добиватся очень часто большей производительности программ чем в родной ОС от майкрософта.

Можно примеров таких программ? Никогда не поверю, чтобы поиск ключей в текстовом файле был быстрее чем в специализированной иерархической СУБД. Может Wine просто при старте засасывает файл в себя, а потом работает в памяти?
Автор: KChernov
Дата сообщения: 27.11.2009 10:43
ya_Mickey

Цитата:
Может Wine просто при старте засасывает файл в себя, а потом работает в памяти?

Наверняка она так и делает. И правильно между прочим делает. А что тут не так?
Автор: ya_Mickey
Дата сообщения: 27.11.2009 14:33
KChernov

Цитата:
Наверняка она так и делает. И правильно между прочим делает. А что тут не так?

Чего-то тема на флуд скатывается.
Автор: snike555
Дата сообщения: 29.11.2009 14:40
Подскажите как программно расширить выпадющий список у комбобокса?
Автор: Lyrik
Дата сообщения: 29.11.2009 16:11
snike555
если я правильно, то используйте GetWindowRect() и SetWindowPos() или CB_SETMINVISIBLE (для ХР и выше).
з.ы. а вообще такое лучше задавать тут
Автор: snike555
Дата сообщения: 29.11.2009 17:53
Lyrik

Цитата:
з.ы. а вообще такое лучше задавать тут

извиняюсь, не сразу заметил примечание

спасибо, SetWindowPos() то что нужно

Автор: Natella92
Дата сообщения: 01.12.2009 23:12
Помогите с задачкой плиз!

Составить две программы, первая из которых вводит составные части структуры данных, приведенной в Вашем варианте индивидуального задания, и формирует из них заданную упакованную структуру. Вторая программа вводит упакованную структуру как 16-ричное число и выводит значения отдельных ее составных частей.

Вариант ╧3
Слово состояния канала в вычислительной системе представляется в виде:
╧ разряда    15    14    13    12    11    10    09    08    07    06    05    04    03    02    01    00
Значение    N    N    N    N    E    C    C    C    C    C    C    C    C    C    0    P
где:
N..N -    номер канала
E -    признак ошибки
C..C -    код причини прерывания
P -    признак завершения программы в канале

Хотя бы обьясните, чего от меня в этом задании хотят?
Автор: derelict
Дата сообщения: 02.12.2009 01:26
Natella92
Мне кажется это должно выглядеть так.
Программа для формирования структуры:
[more]

Код:
#include <iostream>
#include <stdio.h>

using namespace std;

union
{
int state;
struct
{
unsigned P : 1;
unsigned Z : 1;
unsigned C : 9;
unsigned E : 1;
unsigned N : 4;
}bitFields;
}channel;

int main()
{
unsigned int value = 0;
channel.bitFields.Z = 0;
cout<<"Channel number: ";
cin>>value;
channel.bitFields.N = value;
cout<<"Is error: ";
cin>>value;
channel.bitFields.E = value;
cout<<"Interrupt code: ";
cin>>value;
channel.bitFields.C = value;
cout<<"Is finished: ";
cin>>value;
channel.bitFields.P = value;
cout<<endl;
printf("Channel state is %04X", channel.state);
getchar();
getchar();
}
Автор: gazirovka9sps112
Дата сообщения: 06.12.2009 11:12
Дан массив книг s_books books[const_size], нужно в новый динамический массив добавить еще несколько книг используя функцию void add, и в дальнейшем использовать динамический массив для вывода всех книг, и поиска по книгам.
функция поиска и вывода всех книг написана. Немогу создать динамический массив.


#include <iostream>
#include <windows.h>
#include <conio.h>
using std::cout;
using std::cin;
using std::endl;
struct s_books
{
    int data;
    char book_name[40];
    char avtor[30];
    char ganre[30];
    int price;
    int reiting;
    int ID;
}books;
void add (s_books *&book, int size)
{
    
    
}

void All_kat(s_books *book, int size)
{
    for(int i=0;i<size;i++)
    {
        cout<<book[i].data<<" "<<book[i].book_name<<" "<<book[i].avtor<<" "<<book[i].ganre<<" "<<book[i].price<<" "<<book[i].reiting<<" "<<book[i].ID<<endl;
    }
}
void main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    const int const_size=5;
    s_books books[const_size]={1971,"Гидравлика","Башта Т.М.","Гидравлика",45,5,1,
                                1983,"Черчение","Боголюбов С.К.","Черчение",50,2,2,
                                1987,"Машиностроительное черчение","Мерзон Э.Д.","Черчение",45,1,3,
                                1975,"Объемные насосы","Васильцов Э.А.","Гидравлика",45,3,4,
                                1996,"Хранители Кодекса Люцифера","Дюбель Р.П.","Детектив",70,4,5,
                                };
            
    while(1)
    {
    cout<<"\n------------------------------------"<<endl;
    cout<<"\n1-Добавить\t2-Все категори\t0-Выход"<<endl;
        cout<<"\nВыберите действие из команд главного меню ";
        int key;
        cin>>key;
        if(key>2){break;}
        if(key==1)
        {
            cout<<"\nВведите данные книги"<<endl;
            add(book,size);
        }
        if(key==2)
        {
            cout<<"\nВсе книги"<<endl;
            All_kat(book, size);
        }
        if(key==0){break;break;}
    }
}
Автор: T1000m
Дата сообщения: 14.12.2009 23:45
Поделитесь, пожалуйста, информацией по теме "Приведение типа указателя базового класса к указателю производного класса и наборот." или ссылкой, где можно посмотреть эту информацию, лучше с примерами.
Автор: derelict
Дата сообщения: 15.12.2009 00:03
T1000m
Посмотрите например здесь: Указатели на объекты

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.