Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Клуб профессиональных программистов :: Выпуск #78


Клуб профессиональных программистов "Весельчак У"
Информационная рассылка сайта и форума.  Выпуск No78 (2009-10-05).

Здравствуйте, уважаемые читатели!

  • Программирование :: Общий
  • Здрасьте всем!
    Сразу перейду к делу. Есть сайт где можно скачать реферат(сайт не мой). Но чтобы его скачать нужно отправить СМС на определенный номер. Затем после отправки смс приходит ответный СМС с кодом, или ключевыми словами, которые нужно ввести в поле ввода на сайте. И все, после ввода и подтверждения, ссылка на скачивание доступна.

    А теперь вопрос: как это все можно провернуть на своем сайте? То есть, имеются материалы которые хочу продавать через СМС. И не могу понять что для этого нужно сделать? Помогите пожалуйста. Меня всегда выручал ваш форум, полезными советами и ответами, поэтому и в этот раз решил обратиться к вам

     
  • При поиске синтаксиса указателя на метод с++ объекта столкнулся с термином contravariance ....

    Что это такое?

    К какой области компьютерных наук относится\определен?

    P.S. пробовал почитать про него в Википедии, оказалось слишком непонятно написано.
  • Программирование :: .NET технология от и до
  • Захотел я в своём приложении открыть сайт, покликать по ссылочкам и собрать нужную мне информацию.

    Но сайт содержит один только фрейм, у которого почему-то нет (с точки зрения контрола WebBrowser) детей, и список All у него тоже пустой. Это несмотря на то, что браузер корректно отображает весь контент фрейма и вручную мышом я добираюсь до нужных данных. Что я делаю не так?

    На страничке даже нет BODY, а сразу FRAME, содержащий только "<FRAME src=\"/jsp/index.jsp\">". Насколько я помню, MFC давала парсить даже динамический контент, а тут такая вот глупость..
    Код:
            public RPO_Mon(){
                InitializeComponent();
                _wb.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(_wb_DocumentCompleted);
                _btnParse.Enabled = false;
            }

            private void _btnGo_Click(object sender, EventArgs e){
                _wb.Navigate("info.russianpost.ru");
            }

            private void _wb_DocumentCompleted(object sender,
                WebBrowserDocumentCompletedEventArgs e){
                _btnParse.Enabled = true;
            }

            private void _btnParse_Click(object sender, EventArgs e){Parse();}

            private void Parse(){
                foreach (HtmlElement HE in _wb.Document.All)
                    if (HE.TagName == "FRAME")
                        ParseFrame(HE.All);
            }

            private void ParseFrame(HtmlElementCollection HEC){
                foreach (HtmlElement HE in HEC)
                    if (HE.InnerText == "Операционный мониторинг")
                        MessageBox.Show("Let it be");
            }

  • При частом изменении текста в subitemах контрола ListView, работающего в режиме report, наблюдается мерцание контрола, подобное тому, которое можно наблюдать, когда по телевизору показывают телевизор. То есть примерно два раза в минуту по ListView снизу вверх пробегает волна мерцания, причём она не зависит от частоты обновления текста.

    Главное окно программы содержит панель с графиками и ListView, в котором отображаются значения по мере того, как юзер на мыше ездит по графику.

    Я подозреваю, что это может как-то быть связано с частотой экрана и с частотой обработки прерываний мыши где-то внутри, но я не знаю, что можно с этим сделать. Мб задержку какую..

    Существуют ли какие-нибудь практические подходы к решению данного вопроса?
    (когда я лет 10 назад делал это на MFC, такой проблемы вообще не возникало..  :dontknow:)


    Мышь обрабатываю в добавленном к основному (не перегруженном) обработчике,
    и в нём же вызываю функцию изменения текста в subitemах, которая делает это следующим образом:

    Код:
                if(m_Graph.m_Lines!=null)
                {
                    if (m_Graph.m_Lines[0].m_LVI != null)
                        m_Graph.m_Lines[0].m_LVI.SubItems[1].Text = m_Srz[si].Pgr_Str();

                    if (m_Graph.m_Lines[1].m_LVI != null)
                        m_Graph.m_Lines[1].m_LVI.SubItems[1].Text = m_Srz[si].Ptm_Str();

                    if (m_Graph.m_Lines[2].m_LVI != null)
                        m_Graph.m_Lines[2].m_LVI.SubItems[1].Text = m_Srz[si].Ptc_Str();

                    if (m_Graph.m_Lines[3].m_LVI != null)
                        m_Graph.m_Lines[3].m_LVI.SubItems[1].Text = m_Srz[si].Pur_Str();

                   // итд
                }



  • Программирование :: С/С++
  • Привет! Как програмно создавать массивы, например, по событию, чтоб они были необходимого мне, на момент срабатывания события, объема?
  • Я написал оснувную часть своей программы в Microsoft Visual Studio 2008
    на С++ и поместил её в DLL библиотеку затем через сторонюю программу через встроинный в неё скриптовый интерфейс пытаюсь вызвать свою длл прогу но возникает либо внутренняя ошибка загрузки или доступа к функциям либо вылет exe-шника. При этом через тотже интерфейс спокойно загружаются системные длл файлы и из них можно пользоватся функциями. Ради эксперемента попросил друга(он на Delphi7 програмирует)поэсперементировать с длл написаными на делфи
    их прога хавает без проблем как я понял в С++ проблема с экспортными опциями  в делфи их помоему около 5 разница в том как грузятся параметры и кто опустошает стек в С++ знаю всего один возможный параметр extern "C"\extern"C++" если кто знает как ещо можно настроить экспортные функции помогите пожалуста :help:
  • Привет!
    Помимо С++ хочу выбрать второй язык (и почитывать литературку не спеша, потому как литературы по С++ две плотно забитые полки :) ), на котором можно писать web-приложения.

    С точки зрения С++ (если привык (или собираешься)) программиста, какой для этого наиболее подходит?

    Я думаю между Python и C#. Больше склоняюсь к C#.
    Посоветуйте, пожалуйста.

    Ещё смотрю на ActionScript, сугубо из-за флеша. Но это отлельная история.
  • Класс объявлен в h, методы класса определены в cpp. Для того что бы не загромождать, показан только конструктор.
    Код:
    //tree.h

    template <class _KeyT> class CTreeItem
    {
    private:
    ...
    protected:
      _KeyT                       m_Key;

    public:
      CTreeItem(void);
    };

    Код:
    //tree.cpp
    template<class _KeyT>
    CTreeItem<_KeyT>::CTreeItem(void)
                     :m_pParent( NULL), m_pLeft( NULL), m_pRight(NULL),
                      m_Color('b'), m_ulSize(0)
    {
    }


    Вот. Теперь никак не получается использовать, например,  вот такой тип
    Код:
    //some.h
    typedef CTreeItem<double>  CDoubleItem;

    так как "Unresolved external  CTreeItem<double>:: CTreeItem<double> ...". Можно решить это, добавив в  tree.h строки для принудительного инстацирования 
    Код:
    //tree.h

    template class CTreeItem<double>;
    Но только в tree.h. Но если тип будет не стандартный и вообще, нельзя например править tree.h что тогда? Понятно, если вынести определения методов в h, тоже будет компилиться. Но если я не хочу ? Если я вынесу это будет такое месиво определений и методов - а я привык, что все методы в cpp? Так как можно еще управлять инстацированием?



  • вроде бы немного почитал про шаблоны, немного про виртуальные функции и возник вопрос:

    как вы на проектах определяете, когда стоит пользоваться шаблоном, а когда виртуальными функциями?


  • Программирование :: С/С++ :: ANSI С/С++
  • много раз встречал на форуме мнение, что определение своих дефайнов в программе - зло. Но лично я ими пользуюсь и иногда просто невозможно без них (не теряя при этом в удобстве)

    вопрос к противникам этого чуда - какой посоветуете использовать аналог дефайна, против которого Вы не, но который полностью заменит дефайн ?
  • Есть у меня два класса:
    Код:
    template <class C>
    class Synchronizer
      {
    private:
        Synchronizer(); // Hidden constructor to realize Singleton pattern
        static Synchronizer<C> *_self;
      public:
        static Synchronizer<C> *Instance();
    };

    class BehaviourController
    {
    public:
        BehaviourController();
    private:
        Synchronizer <BehaviourController>*Sync;
    };
    И, соответственно, реализация:
    Код:
    template <class C>
    Synchronizer<C>::Synchronizer()
      {
        //  stuff
      }

    template <class C>
    Synchronizer<C> *Synchronizer<C>::Instance()
    {
        if(!_self)
        {
            _self = new Synchronizer();
        }
        return _self;
    }
    Тут все нормально, вроде?
    А если делаем вот так:
    Код:
    BehaviourController::BehaviourController()
    {
        Sync=Synchronizer<BehaviourController>::Instance();
    }
    То компилятор верещит вот так:
    Цитировать
    BehaviourController.obj : error LNK2001: unresolved external symbol "public: static class Synchronizer<class BehaviourController> * __cdecl Synchronizer<class BehaviourController>::Instance(void)" (?Instance@?$Synchronizer@VBehaviourController@@@@SAPAV1@XZ)
    Вопрос: Что я делаю не так?
    Я хотел реализовать класс с шаблоном (дальше с ним идет работа) на основе паттерна Singleton. Пока не было шаблона, все было нормально.  :?
  • Программирование :: С/С++ :: WinAPI & Visual C++
  •  При попытке запустить в MS Visual Studio 2005 проект Debug(в контекстном меню)->Start new instance  выскакивает:
    Цитировать
    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    Unable to start program 'D:\PATH_TO_MY_EXE-FILE\MyExeFile.exe'.
    This application has failed to start because the application configuration is incorrect.
    Review the manifest file for possible errors. Reinstalling the application may fix this problem.
    For more details, please see the application event log.
    ---------------------------
    ОК   
    ---------------------------
    При попытке запустить exe-файл в Windows Commander’e появляется на долю секунды какое-то окно и мгновенно исчезает, при этом в Панель управления->Администрирование-> Просмотр событий(Event Viewer) такие записи(привожу в порядке их появления):
    Цитировать
    Зависимая совокупность Microsoft.VC80.DebugCRT не может быть найдена, последняя ошибка Указанная совокупность не установлена в системе.

    Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".


    Resolve Partial Assembly завершилась не удачно для Microsoft.VC80.DebugCRT. Соответствующее сообщение об ошибке: Указанная совокупность не установлена в системе.

    Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".


    Generate Activation Context завершилась не удачно для D:\PATH_TO_MY_EXE-FILE\MyExeFile.exe. Соответствующее сообщение об ошибке: Операция успешно завершена.

    Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".

    В чем причина? :o

    P.S. После установки Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) версия Студии сменилась с 8.0.50727.42 на 8.0.50727.762.

    WinXP SP3, MS Visual Studio 2005 SP1
  • Программирование :: С/С++ :: Borland C/C++
  • Задание:
    Написать программу на языке C++ чересстрочного слияния (т.е. первая строка в выходном файле - это первая строка из первого файла, вторая строка в выходном файле - это первая строка из второго файла, третья строка в выходном файле - вторая строка из первого файла и т.д.) двух текстовых файлов с удалением в каждой строке слов после которых стоит любой знак препинания.

    Вот попытался сделать первую процедуру, которая сливает информацию из двух файлов один
    Подскажите пожалуйста, все ли здесь праивльно

    Код:
    class gaz{
    public:
    void WriteFile()
    {
    FILE *fi_1,*fi_2,*fo;
    clrscr();
    if ((fi_1=fopen("D:\\file_1.txt", "r"))==0){
      cout << "Error open input file!!!" ;
      return;}
    if ((fi_2=fopen("D:\\file_2.txt", "r"))==0){
      cout << "Error open input file!!!" ;
      return;}
    if ((fo=fopen("D:\\out.dat","w+b"))==0){
      cout << "Error open output file!!!";
      return;}
      int v=m*2;
    slifile = new char*[m+1];
    for(int i=0; i<m+1; i++){
    slifile[i] = new char[m+1];
    }
    int i, max, j, l;
    cout << "w\n";
    for (int i = 1; i <(n1+1); i++) {
      cout<<mass1[i];
      cout<<"\n";}
    for (int j = 1; j < (n2+1); j++){
    cout<<mass2[j];
    cout<<"\n";
    }
    cout << "ssdfrt";
    int cnt1 = n1;
    int cnt2 = n2;
    cout << endl << cnt1 << endl;
    cout << cnt2 << endl;
    stroka cnt;
    max = (cnt1 > cnt2) ? cnt1 : cnt2;
    slifile = new char*[cnt1 + cnt2];
    cout << "sdfwerewr\n";
    itoa(max*2,cnt,10);
    strcpy(slifile[0], cnt);
    cout << "\n max=" << max << "\n";
    if (cnt1 == cnt2) {
    cout << "* Fails odinakovoy dlini\n\n";
    for (int i = max, j = 1; i > 0; i--, j += 2) {
    if (i % 2 == 0) {
    } else {
    strcpy(slifile[j],mass1[i]);
    strcpy(slifile[j+1],mass2[i]);
    }
    }
    } else {
    if (cnt1 < cnt2) {
    cout << "* fi_1 < fi_2\n\n";
    int i,l,j;
    for (i = max,l = 1, j = 1; i > 0; i--, l++, j += 2) {
    cout << "d1";
    if (l > cnt2) {
    strcpy(slifile[j], EMPTY_STR);
    cout << "d2";
    } else {
    strcpy(slifile[j],mass1[i]);
    cout<<"d3";
    }
    cout<<"d4";
    strcpy(slifile[j + 1], mass1[i]);
    cout<<"";
    }
    } else {
    cout << "* fi_1 > fi_2\n\n";
    for (int i = max ,l = 1,j = 1; i > 0; i--, l++, j += 2) {
    strcpy(slifile[j],mass2[i]);
    if (l > cnt1)
    strcpy(slifile[j + 1], EMPTY_STR);
    else
      strcpy(slifile[j+1],mass1[l]);
    }
    }
    }
    fclose(fi_1);
    fclose(fi_2);
    fclose(fo);
    return;
    }
  • Каким методом можно перезапустить свою программу? Желательно на примере.

  • Программирование :: С/С++ :: C/C++ Unix
  • линковка шаблона

    Код:
    #ifndef intrusive_list__HHHH
    #define intrusive_list__HHHH
    struct link_err {
    string s;
    link_err(const char* pc):s(pc){}
    };
    struct slink { //base class for intrusive single linked list
    slink* next;
    slink(slink* p=0):next(p) {}
    };
    template<class T> class intrusive_list {
    T *head;
    T *last;
    unsigned int s;
    // size_t s;
    public:
    class iterator {
    T* p;
    public:
    iterator(T* pp):p(pp) {}
    iterator& operator++(int ) { p=static_cast<T*>(p->next); return *this; }
    T& operator*() { return *p; }
    bool operator==(const iterator& i) { return p==i.p; }
    bool operator!=(const iterator& i) { return p!=i.p; }
    };
    intrusive_list():head(0),last(0),s(0) {}
    iterator begin() { return iterator(head); }
    iterator end() { return iterator(0); }
    void push_front(T& t) ;
    void push_back(T& t) ;
    iterator& erase(iterator& i) {
    if (!s) throw link_err("empty error");
    s--;
    if (!s)  {
    head=last=0;
    return 0;
    }
    if ( head == i.p ) {
    head=i.p->next;
    i.p->next=0;
    i++;
    return i;
    }
    }
    };


    template<class T> void intrusive_list<T>::push_front(T& t) {
    s++;
    t.next=head;
    if(! last) last=&t;
    head=&t;
    return;
    }
    template<class T> void intrusive_list<T>::push_back(T& t) {
    s++;
    if(! last)  head=last=&t;
    else {
    last->next=&t;
    last=&t;
    }
    return;
    }
    #endif

    как вынести erase за пределы объявления класса? (чтобы получилось как push_front,push_back)

    как вынести определения push_front,push_back,erase в отдельный translation unit?
  • всем привет, подскажиет почему получаю болт если пытаюс читать из нескольки портов? т.е. прога биндит несколько портов, каждый новый порт в отдельном потоке и потом номер потока должен юзаться дальше в структурах указателей aio, но что-то не прет.
    с 1 сокетом работает нормально, что-то ч этим set у меня не выходит.
    Код:
    struct aiocb a_read[50];
    const struct aiocb *list;
    #ifdef PTHREAD
    void aio_handler(sigval_t sigval){
    int ret = 0;
    struct aiocb *req = 0;
    req = (struct aiocb*)sigval.sival_ptr;
    if (req != NULL){
    if (aio_error(req) == 0) {
    ret = aio_return( req );
    if (ret == 0) {
    close(req->aio_fildes);
    }
    ((char*)(req->aio_buf))[ret] = '\0';
    printf("the msg is %s\n", (char *)req->aio_buf);
    }
    }else{
    printf ("the req is NULL\n");
    }
    }
    #else
    void aio_handler(int signal, siginfo_t *info, void*uap){
    struct aiocb req;
    int cbNumber = info->si_value.sival_int;
    printf("AIO operation %d completed returning %d\n",cbNumber,aio_return(req[cbNumber]));
    }
    #endif



    void aio_read_loop(int set){
    int catched_len;
    do {
    catched_len = aio_read( &a_read[set]);
    if (aio_suspend( &list, 1, NULL ) == 0 && aio_error( &a_read[set] ) == 0);
    } while ((catched_len = aio_error( &a_read[set]) ) == EINPROGRESS);

    aio_read_loop(set);
    }

    void aio_setup(int sock, int set){
    memset(&a_read[set],0,sizeof(a_read[set]));
    a_read[set].aio_buf = calloc(1,sizeof(MAX_TRANSPORT_LENTH+1));
    a_read[set].aio_fildes = sock;
    a_read[set].aio_nbytes = MAX_TRANSPORT_LENTH;
    a_read[set].aio_offset = 0;
    #ifdef PTHREAD
    a_read[set].aio_sigevent.sigev_notify = SIGEV_THREAD;
    a_read[set].aio_sigevent.sigev_notify_function = aio_handler;
    a_read[set].aio_sigevent.sigev_notify_attributes = NULL;
    a_read[set].aio_sigevent.sigev_value.sival_ptr = &a_read[set];

    #else
    struct sigaction action;
    action.sa_sigaction = aio_handler;
    action.sa_flags = SA_SIGINFO;
    sigemptyset(&action.sa_mask);
    sigaction(SIG_AIO, &action, NULL);
    a_read[set].aio_sigevent.sigev_notify = SIGEV_SIGNAL;
    a_read[set].aio_sigevent.sigev_signo = SIG_AIO;
    a_read[set].aio_sigevent.sigev_value.sival_int = 0;
    #endif

    list = &a_read[set];
    aio_read_loop(set);
    }
    void listening(int set){
    //
    int sfd;
    // bind..

    aio_setup(sfd,set)
    }

    int main(){
    dev.set=5;
    int h;
        pthread_t thread[50];

    for(h=1;h<dev.set;h++){
    printf("J: %i  %i\n",h,dev.set);
        if (pthread_create(&thread[h], NULL, (void*)listening, h) != 0)    {
            return EXIT_FAILURE;
        }
    }


    for(h=1;h<dev.set;h++){
    printf("Y: %i\n",dev.set);
        if (pthread_join(thread[h], NULL) != 0)    {
            return EXIT_FAILURE;
        }
    }
    }
  • Программирование :: Delphi
  • Добрый день.
    Изучаю delphi, сразу же столкнулся со странным:

    С некорректно работающим блоком try...except...end;
    При любых выражениях, стоящих между try...except, гарантированно вызывающих исключение,
    выполнение программы никогда не попадает в блок между except...end;
    Будь то конкретное исключение EXXX и в блоке except on EXXX do ...
    или просто except...end , или except...else - ошибка никогда не может быть поймана, да просто
    никогда не попадаю в блок кода, стоящий за except.
    При этом все компилируется.
    С чем такое поведение может быть связано?  :confused:

    На соседней машине, стоит тот же компилятор (delphi 7), и там поведение несколько отличается:
    мы точно так же не попадаем в блок кода после except, точно так же выскакивает окошко ошибки от стандартного обработчика, зато после нажатия ок, оставшись в дебаге, по следующему ф5, все таки попадаем в этот злополучный участок после  except. Впрочем, от этого не легче: ошибка не поймана и не обработана :-/

    И еще небольшой вопрос, по ходу дела: как в делфи сделать юнит, не связаный с формой?
    Удалил {DFM.R}, и, впринципе, компилируется, но всякие полезные вещи вроде поиск по ф1 выделенного, не работают в этом файлике.
  • Проблема такая: из бд выгружаются данные в excel.

    Код:
    ExcelApp := CreateOleObject('Excel.Application');
    ExcelApp.Application.EnableEvents := false;
    Workbook := ExcelApp.WorkBooks.Open(blankpath+'blank.xls');
    .....

    В общем, файл формируется, все хорошо. Но, после закрытия файла в диспетчере задач остается процесс Excel. Получается сколько раз формируется файл, столько раз и процесс висит в диспетчере. Как его закрыть?

  • Программирование :: VisualBasic
  • Можно ли в окошке "Найти и заменить" в макросе в качестве строки замены использовать то, что предварительно скопировано в буфер обмена? Проблема в том, что копирование в буфер будет различным в процессе работы макроса, только эту информацию надо заменить вместо определенных символов. Пример ниже.

        With Selection.Find
            .Text = "3100,"
            .Replacement.Text = "4200"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With

          В этом блоке вместо 4200 надо вставить информацию из буфера обмена?
    Это возможно или нет. Поделитесь пожалуйста, кто знает.
  • Программирование :: VisualBasic :: Visual Basic for Applications
  • Добрый вечер!

    Столкнулся со следующей проблемой:
    При открытии файла excel должен автоматически запускаться еще один excel файл.
    Делаю это так:
    Код:
    Sub openStatistics()
        Dim CurPath As String
        CurPath = Workbooks("Расчет стоимости РК.xls").Path
        Dim myExcel As Excel.Application, myWb As Workbook 'декларация переменных
        Set myExcel = New Excel.Application 'инициализация
        myExcel.Visible = True 'активация
        Set myWb = myExcel.Workbooks.Open(CurPath + "\статистика.xls") 'открытие книги
    End Sub

    Проблема в том, что из файла "Расчет стоимости РК.xls" нет возможности ссылаться на файл "статистика.xls", т.е. ставлю "=",
    перехожу в другой файл, а ссылку на ячейку сделать не получается.

    Подозреваю, что проблема в неправильном открытии файла.
    Но как открыть его правильно не знаю.

    Спасибо за помощь!
  • помогите удалить объект в autocad при помощи VBA, please.
  • Программирование :: Java
  • Привет форумчане!
    Подскажите пожалуйста кто пользовался netbeans, почему я не могу изменить код(конструктор) который был подставлен IDE при добавлении компонента? :o
  • Здравствуйте, уважаемые знатоки!
    Я только начинаю изучать Java.
    Возник вопрос по чтению данных из файла инициализации (ini).
    Данные из него читаю через Properties.
    С руссификацией разобралась, осталась проблема чтения "спец" символов для строк.
    В моем случае это имя каталога (Windows), в котором есть символы "\".
    При чтении в строку они просто игнорируются, и строка вида "F:\TEMP\QQQ.TXT" исходного файла читается как "F:TEMPQQQ.TXT".
    Можно ли как-нибудь с этим бороться, не меняя сам файл?
  • Программирование :: Программирование 1С
  • Здравствуйте!
    Подскажите пожалуйста: Есть ли возможность в Географической схеме получить координаты курсора (мышки)?
    Нужно это для того, чтобы интерактивно расставлять точечные объекты на схеме.
    Например по событию "Выбор" моего объекта ГраницыГорода как-то получать координаты мышки и ставить туда точечный объект...
    Понятно, что можно вручную задавать координаты в виде цифр, но это крайне неудобно.
  • Доброго времени суток.
    Хотелось бы узнать ваше мнение вот по какому вопросу:
    Я студент, сейчас начинается учебно-исследовательская работа, которую было решено связать с 1С. Изначально проблема заключается в постановке задачи, желательно средней сложности. Возможно вам в работе с различными предприятиями приходится сталкиваться  с решением одной и той же проблемы, под которую можно написать конфиг, или несколько более простых проблем, которые также можно вместе автоматизировать. Проблема желательно должна требовать инновационную деятельность, нововведения, проведение аналитической работы. Как вариант - автоматизировать деятельность предприятий опр. сферы, в которой не все так хорошо в этом плане и приходится нанимать программистов для модификации конфигов, что не есть гуд для них. Возможно есть области, не охваченные 1С, но весьма перспективные, требующие анализа и работы =]. В общем, если есть какие-то мысли - велкам, буду благодарен. =]
  • Программирование :: Программирование 1С :: 1С 8.x
  • Доброго, всем, времени суток.
    В виду прохождения практики во Франчайзинг-компании начал изучать 1С: Предприятие. Имеется большой интерес и куча вопросов в придачу  :)
    Начал изучение по книжечке Практическое пособие разработчика, правда по платформе 8.0 книжка, у самого стоит 8.1. И в процессе изучения столкнулся с проблемой:
    Был создан объект конфигурации Отчет "ПереченьУслуг", задача которого содержать информацию о том какие есть услуги и по какой стоимости. Воспользовавшись Макетом выходной формы получаю модуль с кодом, добавляю фильтр на вид номенклатуры услуги. В итоге в отладке выбираю дату, нажимаю сформировать получаю перечень услуг, но без цен.
    Помогите, пожалуйста, разобраться. Если нужно будет скину *.dt'шку.

    P.S. Раньше возникали ошибки по причине выставления даты (особенно когда начинался новый месяц) и с внимательностью печати. Но вроде в этот раз ни то, ни то не допустил. В книге результат получается, а у меня нет. Помогите.

    Вот модуль формы:
    Код:
    Процедура ДействияФормыПереченьУслугСформировать(Кнопка)
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ПереченьУслуг)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
    ПереченьУслуг(ТабДок, Неопределено, ДатаОтчета);

    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
    КонецПроцедуры

    Процедура ПереченьУслуг(ТабДок, ВидНоменклатуры, ДатаОтчета) Экспорт
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ПереченьУслуг)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Макет = ОтчетОбъект.ПолучитьМакет("ПереченьУслуг");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СпрНоменклатура.Родитель КАК ГруппаУслуг,
    | ПРЕДСТАВЛЕНИЕ(СпрНоменклатура.Родитель),
    | СпрНоменклатура.Ссылка КАК Услуга,
    | СпрНоменклатура.Представление,
    | ЦеныСрезПоследних.Цена
    |ИЗ
    | Справочник.Номенклатура КАК СпрНоменклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета, ) КАК ЦеныСрезПоследних
    | ПО ЦеныСрезПоследних.Номенклатура.ВидНоменклатуры = СпрНоменклатура.Ссылка
    |ГДЕ
    | СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры
    |ИТОГИ ПО
    | ГруппаУслуг ИЕРАРХИЯ";

    Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
    Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета);

    Результат = Запрос.Выполнить();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьГруппаУслугИерархия = Макет.ПолучитьОбласть("ГруппаУслугИерархия");
    ОбластьГруппаУслуг = Макет.ПолучитьОбласть("ГруппаУслуг");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаГруппаУслуг = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаГруппаУслуг.Следующий() Цикл
    Если ВыборкаГруппаУслуг.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
    Область = ОбластьГруппаУслугИерархия;
    Иначе
    Область = ОбластьГруппаУслуг;
    КонецЕсли;

    Область.Параметры.Заполнить(ВыборкаГруппаУслуг);
    ТабДок.Вывести(Область, ВыборкаГруппаУслуг.Уровень());

    ВыборкаДетали = ВыборкаГруппаУслуг.Выбрать();

    Пока ВыборкаДетали.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    КонецЦикла;
    КонецЦикла;

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);

    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
    КонецПроцедуры
  • Есть УТ 10.3.8.9, платформа 8.1, необходимо за определенный период отобрать по контрагенту (определенному) платежные поручения. - Это сделал. Проблема в том что мне необходимо выгрузить полученные данные в XML в определенном виде: пример вида:
    <Начало>
       <Документ номер="номер д-та">
             <Шапка>
                  <Покупатель>Поккупатель</Покупатель>
                  <Поставщик>Поставщик</Поставщик>
                  <ИНН>ИНН</ИНН>
                  ...
             </Шапка>
             <ТабФорма>
                  <сумма>сумма</сумма>
                  <СуммаНДС>СуммаНДС</СуммаНДС>
                  <Договор>Договор</Договор>
                  ...
             </ТабФорма>
       </Документ>
       <Документ номер="номер д-та">
             <Шапка>
                  <Покупатель>Поккупатель</Покупатель>
                  <Поставщик>Поставщик</Поставщик>
                  <ИНН>ИНН</ИНН>
                  ...
             </Шапка>
             <ТабФорма>
                  <сумма>сумма</сумма>
                  <СуммаНДС>СуммаНДС</СуммаНДС>
                  <Договор>Договор</Договор>
                  ...
             </ТабФорма>
       </Документ>
    </Начало>

    Помогите пожалуйста!!!!!
  • Операционные системы :: Unix и другие :: Linux
  • Доброго времени суток.

    Я применяю в программе функции printf, puts.
    Они выводят данные на консоль linux.
    Не хочется переписывать программу.

    Возможно ли так настроить систему, чтобы она выводила эти данные в com порт?
  • Направления программирования :: Drivers
  • Здравствуйте.
    Мой драйвер для PCI Bus-master устройства использует при передаче данных в компьютер непрерывный буфер небольшого размера.(64 килобайта) Выделяю его с помощью функции AllocateCommonBuffer после получения указателя на DMA адаптер через IoGetDmaAdapter. Устройство достаточно мощное в плане DMA и может передавать до 32 блоков данных разного размера (кратного 1024 байтам) за один цикл пересылки содержимого его внутреннего буфера (который составляет 64 Мбайт). Я отображаю буфер на пользовательское адресное пространство и обрабатываю полученные данные. Не так давно задумался над повышением размера буфера. Сразу пришла мысль использовать Scatter-Gather механизм, но не совсем так как это делается через GetScatterGatherList или BuildScatterGatherList. Ведь если я правильно понимаю, то система сама единовременно выделяет Scatter - Gather лист и вызывает Dpc процедуру в которой этот лист можно использовать а затем его нужно освобождать. Мне бы хотелось сделать такую вот вещь - взять и однократно сформировать такой Scatter - Gather List для некоторого буфера достаточно большого размера, и сделать его виртуально непрерывным.(получить MDL через функцию точно не помню сейчас как называется из объекта адаптера DMA, получить виртуальный адрес этого MDL). Затем так же отобразить этот виртуальный адрес на пользовательское пространство памяти и работать как обычно. Одно решение напрашивается само собой - это сделать подобный список вручную через вызовы AllocateCommonBuffer или любые другие функции выделения физически нерпрерывных участков памяти. Но может быть можно сделать это как то через CalculateScatterGatherList/BuildScatterGatherList, и в функции Dpc после вызова BuildScatterGatherList не инициировать никаких операций DMA а просто запомнить полученный Scatter-Gather List? Я попытался у себя в драйвере выделить буфер из обычного пула неподкачиваемой памяти, затем сформировать MDL и вызывать CalculateScatterGatherList/BuildScatterGatherList для этого буфера и MDL но вызов привел к неудаче со статусом STATUS_INSUFFICIENT_RESOURCES. Наверное я что то не понимаю в механизме Windows для Scatter - Gather или я что то не так сделал ? Подскажите пожалуйста что может быть не так. Может быть кто то уже пытался использовать этот механизм подобным образом ?
  • Друзья,
    пишу драйвер-фильтр под Windows. За основу взял исходник файлмона и пару книг по драйверам (которые скачал из архива форума).
    В WDK очень много ссылок на FileSPY, но самих исходников там нет, что очень огорчает и усложняет жизнь.
    В одной из статей Microsoft нашел упоминание о том, что эталоном legacy фильтрующих драйверов является SFilter (а файлмон руссиновича сильно критикуют).

    Хочу посмотреть на исходники SFilter'a, облазил все и вся в их поисках - нет или FileSpy.

    Буду очень признателен за помощь..

  • Уже много лет занимаюсь программированием под различные платформы, но написание драйверов понадобилось только сейчас. Читал различную литературу на эту тему, копался в MSDN, но в итоге в голове куча несвязанной информации, очень много непонятно. Подскажите куда копать.
    Что имеется: bluetooth джойстик, который Windows видит как игровое HID устройство... И не более. Управлять им нельзя. У меня есть подробная документация по его HID репортам, и я без особых проблем могу из своей программы читать данные о нажатых кнопках, осях и пр.
    Что я хочу: написать под это устройство драйвер, чтобы оно виделоcь виндой именно как игровой контроллер, чтобы игры его понимали. На данный момент драйверов под Windows для этого устройства не существует.

    Я так понимаю, что kernel-mode мне и не нужен, достаточно UMDF драйвера, так?
    Есть ли хоть какой-то простейший пример драйвера хотя бы виртуального джойстика? В примерах WDK я ничего такого не нашёл...
    Каким образом Windows ассоциирует устройство с установленным драйвером? По информации в .inf файле? По каким именно критериям? Будет ли Windows ассоциировать драйвер с HID устройством, которое подключено по bluetooth?

    Подскажите хоть в какую сторону копать...
  • Практические разделы :: Железо
  • Компьютер не запускается,в Биос войти не могу. Включаешь питание, кулеры работают, DVD работает,при нажатии кнопки"RESET" чуть-чуть дергается жесткий диск. У монитора чёрный экран, при перезагрузке даже ни дёргается. Есть встроенное видео(кроме видеокарты 512 Мб). Пробовал подключаться то к видеокарте, то встроенному видео.Ни какого эффекта!Клавиатура и мышь не работают. FDD не работает. Флэшка, при включении её в разъём,просто "загорается".При отключении платы памяти "пищит".При отключении питания на CPU срабатывает защита и отключает блок питания.Все напряжения в норме.Что делать-ума не приложу.
    Одно утешает- каждая часть на компе на гарантии. Куплен в июле, в г.Таганроге.
    Данные:
    CPU: INTEL Core2Duo 2.5GHz/2M/800/06
    MB:   GA-G31M-S2C  FSB1333/DDRII 800  Socket-775
    Блок питания ASUS ATX-500H
    Последнее,что он показал на экране:
    <Windowsroot>\system32\hal.dll   эта программа удалена,требуется её восстановление.
    Помогите,братцы! Всякое видел на своём веку,но такое безобразие-в первые.
  • предполагается, что сие чудо ставится в AGP или PCI Express слот. дома - старая машинка с msi 533, туда она не влезла. для интереса притащил на работу, сюда тоже не влазит O.o

    объясните дураку, может, сейчас AGP - это уже не те AGP, которые всегда были AGP? куда эту карту предполагается фтыкать, в какую маму?
  • Практические разделы :: Программы
  • Кто-нибудь знает программу или как ее написать, которая бы собирала несколько excel файлов в один итоговый excel-ий файл, размещая данные каждого файла на отдельной страничке итогового файла. Было бы хорошо чтобы можно было бы эту прогу поставить скажем в определенное время выполнять эту операцию на сервере.
  • Прошу помощи у форумчан в подборе софта под следующую ситуацию:
    есть порядка 20 торговых представителей с коммуникаторами на базе Windows Mobile и Symbian.
    Необходимо сделать так, чтобы при получении заказа, торговый мог отправить его на центральны
  • Практические разделы :: Графика и дизайн
  • Я хотел воспроизвести WAV файл с помощью xaudio2.

    Вся проблема в том, что в примерах из DirectX SDK берётся класс находящийся в файлах: SDKwavefile.h, SDKwavefile.cpp, а эти файлы требуют другие файлы.

    1. И теперь я не понимаю, какие конкретно надо подключать файлы *.h и *.cpp?
    2. Эти файлы *.h и *.cpp не являются частью DirectX SDK, а находятся в примерах и я боюсь их использовать. В связи с этим у меня вопрос, если какие то *.h и *.lib являющиеся частью DirectX SDK для работы с WAV файлами?
    3. Если для работы с WAV файлами обязательно необходимо наличие *.h и *.cpp из примеров, может тогда xaudio2 позволяет использовать другой звуковой формат (например: mp3, ogg, flac, wma), но использовать для этих целей *.h и *.lib являющиеся частью DirectX SDK?
  • Эти вопросы возникли в связи с тем, что я хотел в DirectX SDK ноябрь 2008, сделать DirectMusic.
    Оказалась, что это старый компонент и он был последний раз использован в DirectX SDK август 2007.
    В связи с этим, я решил выяснить, какие компоненты остались в DirectX SDK ноябрь 2008 из стандартного набора компонентов, которые указанны в моих книжках за 2004-2007.

    1. DirectMusic, DirectX Media Objects, DirectPlay - нет.
    2. DirectDraw (почти никто не использует, все рисуют через 3D), Direct3D, DirectInput, DirectSetup, DirectSound - остались.
    3. DirectShow - нет. Переехал в Platform SDK.

    Конечно я указал не все компоненты, а только самые известные для меня на сегодняшний момент.

    Также появился новый компонент XAudio2 который заменяет DirectSound, DirectMusic, DirectX Media Objects.
    XAudio2 позволяет создавать эффекты, комбинируя несколько источников звука, которые в свою очередь могут модифицироваться с помощью различных эффектов.

    В связи с этим у меня возникли два вопроса:

    1. Значит лучше изучать XAudio2, а DirectSound не трогать так он устарел?
    2. Для воспроизведения видео если какой то компонент в DirectX SDK ноябрь 2008 или надо устанавливать Windows SDK, где есть DirectShow?
  • Практические разделы :: Безопасность PC
  • У меня стоит Norton Internet Security 2008 и недавно при старте системы начал выдавать сообщение о том что у меня отключен и брандмауэр и антивирусная защита ,а ещо недавно обнаружил в системе неизвесный процес который хавал ресурсы,тормозил работу браузера(Opera), ничего видимого не делал и лежал в папке для временных файлов(удалил). И всё это наводит на мысль не ослипили ли мой антивирус и как это проверить?
  • Учимся программировать :: Начинающим
  • Привет!

    Объясните, пожалуйста, в чем ошибка.

    Есть массив целых чисел, принимающих значения  от 0 до M.
    И только один элемент повторяется.
    Надо найти этот элемент.

    Вот решение:

    Код:
    #include <iostream>
    using namespace std;

    const int N=15;  

    typedef unsigned __int64 MyInt64;

    MyInt64 iarray[N]={43, 34, 958, 124, 1234, 82, 623, 73, 9518, 10500, 4389, 515, 9661, 890, 515};


    MyInt64 Foo(MyInt64 *m, const int size)
    {
    for( int i = 0; i < size - 1; i++ )
    for( int j= i + 1; j < size; j++ ) if( m[i] == m[j] ) return m[i];
    return 0;
    }


  • подскажите как сделать вкладки на форме? :confused:
    на примере билдера (вкладки - стандарт, вин32 и т.д.)
    есть какой то компанент?
  • полиморфизм аргументов фукнции

    допустим у меня в классе-интерфейсе A определена виртуальная функция принимающая и возвращающая ссылку или указатель на структуру a

    можно ли в реализации интерфейса B, поменять тип аргументов функции или тип возвращаемого значения на b, унаследованный от a?

    если да, то что произойдет, если через указатель типа A* на объект типа B передать ссылку на структуру b?


А теперь прощаемся с Вами до следующего выпуска.


С уважением, команда Клуба.


В избранное