1. C++ / Говнокод #1072

    +38

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    void PduBuffer::putLen_BER(size_t len)
    {
    	if(len <= 0x00ffff)
    	{
    		if(len <= 0x007f)
    		{
    			check_room(1);
    			*position++ = (uint1)len;
    		}
    		else if(len <= 0x00ff)
    		{
    			check_room(2);
    			*position++ = 0x81;
    			*position++ = (uint1)len;
    		}
    		else // 0x00ff < len <= 0x00ffff
    		{
    			check_room(3);
    			*position++ = 0x82;
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    	}
    	else //len > 0x00ffff
    	{
    		if(len <= 0x00ffffff)
    		{
    			check_room(4);
    			*position++ = 0x83;
    			*position++ = (uint1)(len >> 16);
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    		else if(len <= 0xffffffff)
    		{
    			check_room(5);
    			*position++ = 0x84;
    			*position++ = (uint1)(len >> 24);
    			*position++ = (uint1)(len >> 16);
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    		else
    			THROW_INTERNAL("BER length out of range [0, 2^32)");
    	}
    	frame_start = NULL;
    }

    Добавление байтов длины TLV-объекта в буфер.

    guest, 20 Мая 2009

    Комментарии (2)
  2. C++ / Говнокод #1062

    −18.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    ...
    function (int i=0, int j=0){
    if(i>j || j<=i)
    {return i;}else
    {return j;}
    }
    ...
    
    ...
    if ((naibolsee==max(i,j)) && (naibolsee!=max(j,i)))
    {i=max(i,j);}
    else
    {j=max(j,i);}
    ...

    это для квантовых компьютеров, не иначе

    guest, 18 Мая 2009

    Комментарии (9)
  3. C++ / Говнокод #1051

    −45.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    #ifdef WIN32
    
    typedef DWORD (*LPTHREAD_METHOD)(LPVOID pParam);
    
    // Структура параметров для статической функции.
    typedef struct STARTUP_PARAM
    {
       // MSVThread*        pClass;
        LPTHREAD_METHOD    pMethod;
        LPVOID            pParam;
    } *LPSTARTUP_PARAM;
      
    
        // Функция, которая создает новый поток.
        HANDLE    StartThread        (LPTHREAD_METHOD pMethod, LPVOID pParam=0, 
                                 LPDWORD pdwThreadID = NULL, 
                                 LPSECURITY_ATTRIBUTES pSecurity = NULL , 
                                 DWORD dwStackSize = 0 , 
                                 DWORD dwFlags = 0);
    
        // Статическая функция, которая запустит метод.
        static  DWORD StartFunc    (LPSTARTUP_PARAM pStartup);
    
    
    
    
    HANDLE StartThread(LPTHREAD_METHOD pMethod, LPVOID pParam, 
                                 LPDWORD pdwThreadID /* = NULL */, 
                                 LPSECURITY_ATTRIBUTES pSecurity /* = NULL */, 
                                 DWORD dwStackSize /* = 0 */, 
                                 DWORD dwFlags /* = 0 */)
    {
        // Создаем структуру и упаковываем данные для статической функции.
        LPSTARTUP_PARAM pStartup = new STARTUP_PARAM;
        pStartup->pMethod    = pMethod;
        pStartup->pParam    = pParam;
    
        // Создаем новый поток.
        return CreateThread(pSecurity, dwStackSize, (LPTHREAD_START_ROUTINE)StartFunc, pStartup, dwFlags, pdwThreadID);
    }
    
    // В новом потоке вначале вызывается функция CMyClass::StartFunc(...)
    // А она запускает наш метод.
    
    DWORD StartFunc(LPSTARTUP_PARAM pStartup)
    {
        // Распаковываем данные в новом потоке.
        // Получаем указатель на класс и на метод класса.
        LPTHREAD_METHOD pMethod = pStartup->pMethod;
        LPVOID pParam            = pStartup->pParam;
    
        // Запускаем метод класса в новом потоке.
        DWORD dwResult = (*pMethod)(pParam);
    
        // Удаляем временные данные и возвращаем код возврата из нового потока.
        delete pStartup;
        return dwResult;
    }
    
    #else
    
    #include "pthread.h"
    
    typedef DWORD (*LPTHREAD_METHOD)(LPVOID pParam);
    
    // Структура параметров для статической функции.
    typedef struct STARTUP_PARAM
    {
        LPTHREAD_METHOD    pMethod;
        LPVOID            pParam;
    } *LPSTARTUP_PARAM;
      
        // Статическая функция, которая запустит метод.
        static  DWORD StartFunc    (LPSTARTUP_PARAM pStartup);
    
        // Функция, которая создает новый поток.
    HANDLE StartThread(LPTHREAD_METHOD pMethod, LPVOID pParam=0, 
                                 LPDWORD pdwThreadID=0 /* = NULL */, 
                              //   LPSECURITY_ATTRIBUTES pSecurity /* = NULL */, 
                              //   DWORD dwStackSize /* = 0 */, 
                                 const pthread_attr_t* dwFlags=0 /* = 0 */)
    {
        // Создаем новый поток.
    	pthread_t restrict;
    	if(pthread_create(&restrict, dwFlags, (void* (*)(void*))pMethod, pParam)) return pdwThreadID;
    	return 0;
    }
    
    #endif

    Человек пишет кросплатформенный http-сервер, а заодно свой собсвенный фреймворк. Участок кода с нитями.

    guest, 16 Мая 2009

    Комментарии (8)
  4. C++ / Говнокод #1044

    −27.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    t1max=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t1maxMass[i]=0;
    i++;
    }
    t2max=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t2maxMass[i]=0;
    i++;
    }
    t3max=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t3maxMass[i]=0;
    i++;
    }
    
    t1maxM=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t1maxMassM[i]=0;
    i++;
    }
    t2maxM=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t2maxMassM[i]=0;
    i++;
    }
    t3maxM=0;
    i=0;
    for(i=0;i<4;i++)
    {
    t3maxMassM[i]=0;
    i++;
    }

    Человек собирается защитить диплом.
    Участок кода

    guest, 15 Мая 2009

    Комментарии (8)
  5. C++ / Говнокод #1042

    −35.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    bool Update(float dt) // ага, вот так вот жестоко мы постепенно приведём всё к нормальным coding conventions ^_^
      {
        return update(dt);
      }
    
      bool update(float dt) // теперь возвращает true если value изменилось и false если нет
      {
         //bla-bla-bla

    жестокое решение code standart'a

    guest, 15 Мая 2009

    Комментарии (5)
  6. C++ / Говнокод #1013

    −0.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    // txTextOut выводит текст на заданных координатах
    // Часть функции вывода рейтинга
    if (rating == 10) txTextOut (620, 0, "Твой рейтинг: 10");
    if (rating == 9)  txTextOut (620, 0, "Твой рейтинг: 9");
    if (rating == 8)  txTextOut (620, 0, "Твой рейтинг: 8");
    if (rating == 7)  txTextOut (620, 0, "Твой рейтинг: 7");
    if (rating == 6)  txTextOut (620, 0, "Твой рейтинг: 6");
    if (rating == 5)  txTextOut (620, 0, "Твой рейтинг: 5");
    if (rating == 4)  txTextOut (620, 0, "Твой рейтинг: 4");
    if (rating == 3)  txTextOut (620, 0, "Твой рейтинг: 3");
    if (rating == 2)  txTextOut (620, 0, "Твой рейтинг: 2");
    if (rating == 1)  txTextOut (620, 0, "Твой рейтинг: 1");
    if (rating <= 0)  txTextOut (620, 0, "Твой рейтинг: 0");
    .....
    if (level == 1) Text_First_Level  (fon_text_level);    
    if (level == 2) Text_Second_level (fon_text_level);
    if (level == 3) Text_Third_Level  (fon_text_level);
    if (level == 4) Text_Fourth_level (fon_text_level);
    // по этим фрагментам понятно, что switch я ещё не знал))
    .....
    if (level == 1) Check_exit (&Player_x, &Player_y, 1, 750, 550, &fon, key_on, key_off, arrow_left, arrow_right);
    if (level == 2) Check_exit (&Player_x, &Player_y, 2, 250, 350, &fon, key_on, key_off, arrow_left, arrow_right);
    if (level == 3) Check_exit (&Player_x, &Player_y, 3, 750, 550, &fon, key_on, key_off, arrow_left, arrow_right);
    if (level == 4) Check_exit (&Player_x, &Player_y, 4,  50, 550, &fon, key_on, key_off, arrow_left, arrow_right);
    // циклы я знал, хотя это и не заметно)) а вот структуры и массивы - нет
    // последние параметры - картинки))
    .....
    Teleport (&Player_x, &Player_y, 3, 750,  50,  50, &fon, key_on, key_off, arrow_left, arrow_right);
    Teleport (&Player_x, &Player_y, 3, 750, 150, 150, &fon, key_on, key_off, arrow_left, arrow_right);
    Teleport (&Player_x, &Player_y, 3, 750, 250, 250, &fon, key_on, key_off, arrow_left, arrow_right);
    Teleport (&Player_x, &Player_y, 3, 750, 350, 350, &fon, key_on, key_off, arrow_left, arrow_right);
    Teleport (&Player_x, &Player_y, 3, 750, 450, 450, &fon, key_on, key_off, arrow_left, arrow_right);
    Teleport (&Player_x, &Player_y, 3, 750, 550, 550, &fon, key_on, key_off, arrow_left, arrow_right);
    // без комментариев
    .....
    // вобщем, вся прога примерно такая. Я сам писал её))))
    //

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

    guest, 06 Мая 2009

    Комментарии (3)
  7. C++ / Говнокод #1011

    +11.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    //---------------------------------------------------------------------------
    int print(int p)
    {
            int n;
    	int i;
    	char c;
    	clrscr();
            Y cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
    		201,205,205,205,209,
    		205,205,205,205,205,205,205,205,205,205,205,205,209,
    		205,205,205,205,205,205,205,205,205,205,205,205,209,
            	205,205,205,205,205,205,205,205,205,205,205,205,209,
    		205,205,205,205,209,
    		205,205,205,205,205,205,205,205,205,205,205,205,205,209,
    		205,205,205,205,205,205,205,187);
    	cprintf("%c %c %c   Surname  %c    Name    %c Patronymic %cYear%c  Profession %c Wages %c\n\r",
    		186,252,179,179,179,179,179,179,186);
    	cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
    		199,196,196,196,197,
    		196,196,196,196,196,196,196,196,196,196,196,196,197,
    		196,196,196,196,196,196,196,196,196,196,196,196,197,
    		196,196,196,196,196,196,196,196,196,196,196,196,197,
    		196,196,196,196,197,
    		196,196,196,196,196,196,196,196,196,196,196,196,196,197,
    		196,196,196,196,196,196,196,186);
    	for(i = 0; i < p; i++)
    		{
    		cprintf("%c", 186);
    		W cprintf("%3i", i +1);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].fam);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].name);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].otch);
    		Y cprintf("%c",179);
    		W cprintf("%4i", rabota[i].year);
    		Y cprintf("%c",179);
    		W cprintf("%13s", rabota[i].prof);
    		Y cprintf("%c",179);
    		W cprintf("%7i", rabota[i].zarpl);
    		Y cprintf("%c\n\r", 186);
                   }
            cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
                    200,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,188);
    		W cprintf("Continue Y/N ?");
            scanf("%s", &c);
            if(c == 'Y' || c == 'y')
                    return 1;
            else
                    exit(1);
            return 0;
    }
    
    //---------------------------------------------------------------------------

    Графика под DOS это сильно

    guest, 06 Мая 2009

    Комментарии (2)
  8. C++ / Говнокод #1006

    +48

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    int print(int *p)
    {
    		int n;
    		int i;
    		char c;
    		clrscr();
    
    	   Y cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
    				201,205,205,205,209,
    				205,205,205,205,205,205,205,205,205,205,205,205,209,
    				205,205,205,205,205,205,205,205,205,205,205,205,209,
    				205,205,205,205,205,205,205,205,205,205,205,205,209,
    				205,205,205,205,209,
    				205,205,205,205,205,205,205,205,205,205,205,205,205,209,
    				205,205,205,205,205,205,205,187);
    		cprintf("%c %c %c   Surname  %c    Name    %c Patronymic %cYear%c  Profession %c Wages %c\n\r",
    				186,252,179,179,179,179,179,179,186);
    		cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
    				199,196,196,196,197,
    				196,196,196,196,196,196,196,196,196,196,196,196,197,
    				196,196,196,196,196,196,196,196,196,196,196,196,197,
    				196,196,196,196,196,196,196,196,196,196,196,196,197,
    				196,196,196,196,197,
    				196,196,196,196,196,196,196,196,196,196,196,196,196,197,
    				196,196,196,196,196,196,196,186);
    		for(i = 0; i < *p; i++)
    		{
    		cprintf("%c", 186);
    		W cprintf("%3i", i +1);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].fam);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].name);
    		Y cprintf("%c",179);
    		W cprintf("%12s", rabota[i].otch);
    		Y cprintf("%c",179);
    		W cprintf("%4i", rabota[i].year);
    		Y cprintf("%c",179);
    		W cprintf("%13s", rabota[i].prof);
    		Y cprintf("%c",179);
    		W cprintf("%7i", rabota[i].zarpl);
    		Y cprintf("%c\n\r", 186);
            }
            cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\r",
                    200,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,207,
                    205,205,205,205,205,205,205,205,205,205,205,205,205,207,
                    205,205,205,205,205,205,205,188);
    		W cprintf("Continue Y/N ?");
            scanf("%s", &c);
            if(c == 'Y' || c == 'y')
                    return 1;
            else
                    exit(1);
            return 0;
    }

    бд

    guest, 06 Мая 2009

    Комментарии (1)
  9. C++ / Говнокод #977

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    TSearchRec sr;
    if(FindFirst(Dir+"\\"+mask,iattr,sr)==0)
    {
     do
     {
      AnsiString Processes=Dir+"\\"+sr.Name;
      //куча кода
      AnsiString newName=sr.Name;
      //еще код
      AnsiString TmpFile=Dir+"\\"+newName;
      if(RenameFile(Processes,TmpFile))
      {
       ...
      }
      {
       ...
       continue;
      }
     }while(FindNext(sr)==0);
    }

    И почему программа "виснет"? Это в клиенте платежной системы... Рыдаю... (стр. 19)

    guest, 30 Апреля 2009

    Комментарии (5)
  10. C++ / Говнокод #974

    +155.8

    1. 1
    2. 2
    3. 3
    ...
    HWND handle=FindWindow(NULL,AnsiString("DPPCommModule").c_str());
    ...

    На тему: "Сделаем наш string еще string'ее". Это в программе, работающей более чем на 100 теминалах...

    guest, 29 Апреля 2009

    Комментарии (2)