ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение ARV »

файлы и сортировка - это вопросы ОБЩЕГО ПЛАНА, конкретно к С++ отношение имеют весьма посредственное, т.к. одинаковы почти во всех языках... а вот когда дойдете до шаблонов и т.п. фич, исключительно С++-шных, т.е. более нигде не имеющихся - вот тут-то крышку и сорвать может
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

Pika4u а тебя такой фрагмент С++ ного кода не напугает?
Запрос в MySQL базу данных и разбор полученной структуры по разным переменным. :)))
Заголовочники и прочее не привожу, это только маленький фрагмент программы.
В ней 610 строк и размер её 76 Кб. :)))
Ещё к ней подвешиваются два DLL файла и один INI файл настроек.
DLL: libMySQL.dll - API базы данных (2,25Мб)
DLL: dxcom.dll - собственный класс для работы с COM портами. (86Кб)
DxControlServer.ini - файл настроек программы (176 байт)

Код: Выделить всё

MYSQL mysql;
MYSQL_RES *res;
DXCOM dx;
PortInfo xd;
DWORD ini;
HANDLE console;

int tcp_port, com_port, baud, level, com_d, rts1_d, rts0_d, strt_d;
char st, l1, l2, l3, l4;
char host[20], user[20], pssw[20], dtbs[20], dbg[2], log[2];
char idd[20], usr[20], psw[20];
char query[512];

int DBquery(const char *id)
{
   MYSQL_ROW row;
   unsigned int i=0;
   //----------
   sprintf(query, "SELECT * FROM users WHERE ID=%s", id);
   //----------
   if (mysql_query(&mysql, query))
   {
      SetConsoleTextAttribute(console, FOREGROUND_RED | FOREGROUND_INTENSITY);
      display(" Ошибка запроса!");
      fprintf(stderr, " Error: %s\n", mysql_error(&mysql));
      return 1;
   }
   //----------
   if (!(res = mysql_store_result(&mysql)))
   {fprintf(stderr, " Error: %s\n", mysql_error(&mysql));return 1;}
   //----------
   while((row = mysql_fetch_row(res)))
   {
      for (i=0;i<mysql_num_fields(res);i++)
      {
             if (i==0){for (int a=0;a<20;a++){idd[a]=row[i][a];}}
         else if (i==1){for (int a=0;a<20;a++){usr[a]=row[i][a];}}
         else if (i==2){for (int a=0;a<20;a++){psw[a]=row[i][a];}}
         else if (i==3){st = row[i][0];}
         else if (i==4){l1 = row[i][0];}
         else if (i==5){l2 = row[i][0];}
         else if (i==6){l3 = row[i][0];}
         else if (i==7){l4 = row[i][0];}
      }
   }
   //----------
   if (!mysql_eof(res)){fprintf(stderr," Error: %s\n", mysql_error(&mysql));return 1;}
   //----------
   mysql_free_result(res);
   delete row;
   //----------
   return 0;
}


Это ещё изврааат
Последний раз редактировалось DX168B Чт фев 03, 2011 13:39:12, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение ARV »

самое смешное, что в приведенном коде нет ничего, присущего именно С++ - этот код на 100% чисто СИШНЫЙ, без плюсов. вы бы привели парочку классов, сделанных по шаблонам, с виртуальными конструкторами-деструкторами и обработкой исключений - вот тогда б кто-то мог вздрогнуть :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Pika4u
Поставщик валерьянки для Кота
Сообщения: 2064
Зарегистрирован: Пт апр 24, 2009 11:39:16
Откуда: г.Оренбург

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение Pika4u »

Написал прогу для флага России, чтобы флаг не сразу, а построчно рисовался. Вот:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
const int N=343;
main()
{
while(1)
{
int i;
initwindow(1280,1024);
for(i=0;i<N;i++)
{
setfillstyle(1,15);
bar(0,0,1280,i);
delay(1);
setfillstyle(1,1);
bar(0,342,1280,i+342);
delay(1);
setfillstyle(1,4);
bar(0,684,1280,i+684);
delay(1);
}
getch();
closegraph();
}
}

Пойду для флага Великобритании писать))) :))) :))) :)))
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

ARV писал(а):самое смешное, что в приведенном коде нет ничего, присущего именно С++ - этот код на 100% чисто СИШНЫЙ, без плюсов. вы бы привели парочку классов, сделанных по шаблонам, с виртуальными конструкторами-деструкторами и обработкой исключений - вот тогда б кто-то мог вздрогнуть :)))

Вас, как опытного кота - этим не напугать. :))) А в принципе Си от C++ не сильно отличаются.
Только в С++ намного больше возможностей и есть куча добавок. :)
Ну а это уже похоже на С++

Код: Выделить всё

// MyCODEDlg.h : header file
//

#if !defined(AFX_MYCODEDLG_H__E9E40839_9897_4379_A07D_898A3C5866B5__INCLUDED_)
#define AFX_MYCODEDLG_H__E9E40839_9897_4379_A07D_898A3C5866B5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CMyCODEDlg dialog

class CMyCODEDlg : public CDialog
{
// Construction
public:
   CMyCODEDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
   //{{AFX_DATA(CMyCODEDlg)
   enum { IDD = IDD_MYCODE_DIALOG };
   int      m_delay;
   BOOL   m_atc;
   //}}AFX_DATA

   // ClassWizard generated virtual function overrides
   //{{AFX_VIRTUAL(CMyCODEDlg)
   protected:
   virtual void DoDataExchange(CDataExchange* pDX);   // DDX/DDV support
   //}}AFX_VIRTUAL

// Implementation
protected:
   HICON m_hIcon;

   // Generated message map functions
   //{{AFX_MSG(CMyCODEDlg)
   virtual BOOL OnInitDialog();
   afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
   afx_msg void OnPaint();
   afx_msg HCURSOR OnQueryDragIcon();
   afx_msg void OnButton1();
   afx_msg void OnButton2();
   afx_msg void OnButton3();
   afx_msg void OnButton4();
   afx_msg void OnButton5();
   afx_msg void OnButton6();
   afx_msg void OnButton7();
   afx_msg void OnButton8();
   afx_msg void OnButton9();
   afx_msg void OnButton0();
   afx_msg void OnButtonEnter();
   afx_msg void OnButtonClear();
   virtual void OnOK();
   afx_msg void OnButtonIntCall();
   afx_msg void OnButtonIntClose();
   afx_msg void OnCheck1();
   afx_msg void OnChangeEdit1();
   afx_msg void OnButton15();
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MYCODEDLG_H__E9E40839_9897_4379_A07D_898A3C5866B5__INCLUDED_)


Объявление класса CMyCODEDlg
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение ChipKiller »

DX168B... раз уж везде идет if (i==, то наверное проще написать

Код: Выделить всё

switch(i){
   case 0:
}

... хотя конечно - хозяин - барин :) .
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

Можно было и через switch \ case, но тогда это мне в голову пришло, по этому разбор пошёл через if :))
I am DX168B and this is my favourite forum on internet!
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение lix »

вывод всяких сообщение лучще сделать отдельным классом, чтобы удобно сохранять логи программы.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

Все логи пишутся в базу другой функцией, в том числе и ошибки запроса на чтение, если ID выступает за пределы таблицы. Ошибки пакетов с COM порта тоже регистрируются. В базе данных тоже создана пара триггеров для самостоятельного лога + в журнал винды регистрируются ошибки самой СУБД. Вот ошибка записи логов в базу выводится на экран. Там же не зря стоит return 1; в случае ошибки. После слёта из этой функции, далее снова ошибка извлекается из mysql_errno() и из mysql_error() и пишется в другую таблицу.
Если и там ошибка, отправляется административное оповещение в локальную сеть. :)

А на счёт класса - Вы верно намекнули. Надо будет продумать и переписать. :)
I am DX168B and this is my favourite forum on internet!
А.Андрей
Друг Кота
Сообщения: 6900
Зарегистрирован: Ср май 05, 2010 13:31:29

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение А.Андрей »

ARV писал(а):турбопаскаль это тот же труп, что и CGA-EGA. Очень рекомендую Delphi - тот же паскаль, но с ООП и вполне современно. если вы не намерены стать профессиональным программистом, С++ изучать так же нет особоых причин, во всяком случае, глубоко изучать, ибо там можно мозг сломать запросто, если он неокрепший :)))

да яасно :)))
Да он не поддерживает он ассемблерные вставки(но изуучать делфи всё равно нужно.......)
А ассемблерные вставки в ряде случаев НЕОБХОДИМЫ (при написании антивиря,например)
Спасибо за внимание.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

А я на Си остановлюсь. Хоть мозг и ломает иногда,
но этот язык более кроссплатформенный :) , еже-ли Delphi
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение ARV »

А.Андрей писал(а):да яасно :)))
Да он не поддерживает он ассемблерные вставки(но изуучать делфи всё равно нужно.......)
А ассемблерные вставки в ряде случаев НЕОБХОДИМЫ (при написании антивиря,например)
кто не поддерживает ассемблерные вставки? турбопаскаль? Delphi? оба поддерживают, и еще как! только создается впечатление, что для вас главное - это именно ассемблерные вставки, и вы готовы их пихать куда угодно :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
А.Андрей
Друг Кота
Сообщения: 6900
Зарегистрирован: Ср май 05, 2010 13:31:29

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение А.Андрей »

ARV писал(а):кто не поддерживает ассемблерные вставки? турбопаскаль? Delphi? оба поддерживают, и еще как! только создается впечатление, что для вас главное - это именно ассемблерные вставки, и вы готовы их пихать куда угодно :)))

ой извините перепутал с визуальбейсиком :))
это не главное, я не фанатик, но в ряде случаев нужное
Спасибо за внимание.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

Классная программа у меня получилась.... :))) :hunger:
Кому интересно будет, отдам проект с исходником. :)
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение РадиоЛоматель »

Эх, ну и гад же вы :)) Хотя я успел накропать сообщение.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

:))) :))) :))) :))) :)))
А вот более замедленная (на 1 сек.)
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение РадиоЛоматель »

После вашего отсчета еще идет отсчет системный-25 секунд. Можно приложение завершить, но я запамятовал как оно называется... В системе есть. Когда-то тоже баловался с ним :))
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
FRIM@N
Поставщик валерьянки для Кота
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение FRIM@N »

DX168B "гы-гы это прикол" убери, а то кирпичи плохо идут
(\_(\
(=' :') радиоКотЭ
(,('')('')
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение DX168B »

Ну и последний вариант жоще... :))) :))) :))) :)))
Последний раз редактировалось DX168B Пт фев 04, 2011 18:56:40, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!

Сообщение ARV »

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

Мой уютный бложик... заходите!
Ответить

Вернуться в «МЯЯЯУ!»