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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for (int i = 0; i < m_pTableWidget->rowCount(); i++) {
            m_pFilterList->addFilter(m_pTableWidget->item(i, 0)->text(), 
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 1)))->currentText(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentIndex()).toString(),
                                     m_pTableWidget->item(i, 3)->text(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->currentIndex()).toString(),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("конца") ? "'%" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'"),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("начала") ? "%'" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'")
                                     );
        }

    Вот так вот брутально выглядит код "в одну строчку"

    JC_NVKZ, 08 Июня 2010

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

    +157

    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
    void foo()
    {
     if (!wxFile::Exists(defDir + resourcePath)) return false;
     HBITMAP *bmp = new HBITMAP;
     wxString path = defDir + resourcePath;
     (*bmp) = (HBITMAP)LoadImage(0, path.c_str(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
     if (bmp != NULL) (*pMap)[resourceName] = bmp; else return false;
     return true;
    }
    
    bool SXXXXBitmapStorage::releaseItem(wxString resourceName)
    {
     ScrollBitmapHash::iterator iterator = pMap->find(resourceName);
     if (iterator == pMap->end()) return false;
     if (iterator->second != NULL) delete (HBITMAP*)iterator->second;
     pMap->erase(resourceName);
     return true;
    }
    
    HDC* SXXXXBitmapStorage::adjustToDC(wxString resourceName)//we must delete this object
    {
     HBITMAP *bmp = this->getItem(resourceName);
     if (bmp == NULL) return NULL;
     HDC *pDC = new HDC();
     (*pDC) = CreateCompatibleDC(0);
     SelectObject(*pDC, *bmp);
     return pDC;
    }

    И вы не поверите, этот код работал! Правда, конечно же, была утечка ресурсов

    Hsilgos, 07 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Allow* AccessSection::check(CONNECTION * connection, char *username, char *password)
    {
    ...
                    if (current->username != "" && username != "" && current->username != username)
                            continue;
    ...

    Кусок кода из прокси-сервера Shweby

    gpr, 07 Июня 2010

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

    +192

    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
    <शैली श्रेणी>
    #समावेश <मानकपन.स>
    
    श्रेणी जानवर
    {
    खुला:
    	भव व्योम लिखो()
    	{
    		म_लिखो("यह एक जानवर है।\n");
    	}
    };
    
    श्रेणी शेर : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("शेर एक जानवर है।\n");
    	}
    };
    
    श्रेणी चीता : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("चीता एक जानवर है।\n");
    	}
    };
    
    पूर्णांक मुख्य()
    {
    	जानवर ज, *ज१;
    	शेर श;
    	चीता च;
    
    	ज.लिखो();
    	श.लिखो();
    	च.लिखो();
    
    	ज१=&ज;
    	ज१->लिखो();
    	ज१=&श;
    	ज१->लिखो();
    	ज१=&च;
    	ज१->लिखो();
    
    	वापस 0;
    }

    Вот вы все говорите про индусский код, а он на самом деле вот такой! Мне кажется, простой и логичный!

    (Дистрибутив на http://hindawi.in/en_US/download.php)

    nil, 06 Июня 2010

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

    +157

    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
    //sort rr
        unsigned int i = 0;
        unsigned int random = time(NULL);
        unsigned int nummx = rr->size();
        while (nummx > 0){
            unsigned long numsame=1;
            i = 0;
            for (unsigned int j = 1;j < nummx;++j)
                if ((*rr)[j].m_pref > (*rr)[i].m_pref){
                    i = j;
                    numsame = 1;
                }else if ((*rr)[j].m_pref == (*rr)[i].m_pref){
                    ++numsame;
                    random = random * 69069 + 1;
                    if ((random / 2) < (2147483647 / numsame))
                        i = j;
                }
            swap((*rr)[i],(*rr)[--nummx]);
        }

    Что делает код - достоверно неизвестно. Скорее всего, что-то сортирует и одновременно перемешивает.

    gpr, 05 Июня 2010

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

    +1001

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    struct Dir {
        Dir(const char* name) {
            d = opendir("/var/log");
        }
        ~Dir();
        const char* next();
        bool operator== (DIR* other);
    private:
        DIR* d;
    };
    ...
    Dir var_log("/var/log");

    evlad, 03 Июня 2010

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

    +1005

    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
    void bvnr(char *text)
    {
    for(int f=0; f<=strlen(text); f++)
    {
    switch(text[f])
    {
    case 'Q' : text[f] = 'q' ; break;
    case 'W' : text[f] = 'w' ; break;
    case 'E' : text[f] = 'e' ; break;
    case 'R' : text[f] = 'r' ; break;
    case 'T' : text[f] = 't' ; break;
    case 'Y' : text[f] = 'y' ; break;
    case 'U' : text[f] = 'u' ; break;
    case 'I' : text[f] = 'i' ; break;
    case 'O' : text[f] = 'o' ; break;
    case 'P' : text[f] = 'p' ; break;
    case 'A' : text[f] = 'a' ; break;
    case 'S' : text[f] = 's' ; break;
    case 'D' : text[f] = 'd' ; break;
    case 'F' : text[f] = 'f' ; break;
    case 'G' : text[f] = 'g' ; break;
    case 'H' : text[f] = 'h' ; break;
    case 'J' : text[f] = 'j' ; break;
    case 'K' : text[f] = 'k' ; break;
    case 'L' : text[f] = 'l' ; break;
    case 'Z' : text[f] = 'z' ; break;
    case 'X' : text[f] = 'x' ; break;
    case 'C' : text[f] = 'c' ; break;
    case 'V' : text[f] = 'v' ; break;
    case 'B' : text[f] = 'b' ; break;
    case 'N' : text[f] = 'n' ; break;
    case 'M' : text[f] = 'm' ; break;
    )
    }
    }

    Перевод текста в нижний регистр. Можно пугать детей на ночь))

    hromjo, 03 Июня 2010

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

    +998

    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
    #define TRACE_VAR	ATraceClass *mTrace
    #define TRACE_VAR_INIT	mTrace = ATraceClass::getInstance()
    
    class ATraceClass {
    public:
    	void log(int severity, const char *format, ...);
    	/* ... */
    }
    
    class ATraceUser {
    public:
    	ATraceUser::ATraceUser() {
    		TRACE_VAR_INIT;
    	}
            int SomeMethod1();
    	/* ... */
    	TRACE_VAR;
    }
    
    int ATraceUser::SomeMethod1()
    {
      /* ... */
      if (errorCondition)
      {
        return mTrace->log( ERR, "Something went terribly"\
                            "wrong when doing the operation %s\n",\
                            mOperation),-1;
      }
      /* ... */
    }

    в догонку к #3355 - это уже как бы пример стиля использования логгера егоным же автором.

    пришел ко мне как-то народ, показал нечто что я тут иллюстрирую в SomeMethod1() и спросил:
    (1) а на кой эти слеши? может нам и весь остальной код нужно ими разукрасить??
    (2) а как это void можно из int функции возвращать? и как это вообще работает? вроде в С/С++ такое нельзя....

    у меня до сих пор в голове не укладывается каким .... надо быть что бы такой код писать.

    Dummy00001, 31 Мая 2010

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

    +1003

    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 ATraceClass::LogFunction(const char *format, va_list ap)
    {
      /* ... declarations ... */
    
      for (p=format; (*p)&&(!isTruncated); p++)
      {
        if ( * p == '%' )
          switch( * ++p )
          {
            case 'c':
            { /* ... */ }
            break;
    
            case 'd':
            case 'i':
            { /* ... */ }
            break;
    
            case 'l':   // это %ld
            { /* ... */ }
            break;
    
            case 'L':    // это %Ld
            { /* ... */ }
            break;
      
            case 'f':   // a это %g
            { /* ... */ }
            break;
    
            case 'F':  // a это %Lg
            { /* ... */ }
            break;
    
            case 's': 
            { /* ... */ }
            break;
    
            default: // this is an ERROR case, but we will not perform coding at this point ... maybe later
              break;
          }
          else {
            /* ... */
          }
      }
    }

    наболело. одно чудило (с большой букмы Му) наговнокодило это дело под эгидой "stdio это С, мы в С++ можем круче!!!" ну с тех пор и переизобретают велосипед - с квадратными колёсами. даже %% не догадались сделать.

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

    самое гадкое что народ пишет код как обычно ожидая стандартные stdio шорткаты, и потом долго гадает куда блин сообщение подевалось.

    Dummy00001, 31 Мая 2010

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

    +1001

    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
    struct Node{
        char* d;
        Node *left;
        Node *right;
    };
    
    Node* search_insert(Node *root, char* d){
         /*.........*/
        Node *pnew = new Node;
        pnew->d = d
         /*.........*/
    }
    int main(){
        /*.........*/
        Node *root=NULL;
        char* r=new char;
        for (int i = 0; i<10; i++){
                scanf("%s", r);
                root=search_insert(root, b[i]);
        }
         /*.........*/
    }

    Вот такой тупой недочет стоил мне туевой хучи времени. Не единожды стирал все и писал заново. Просветление пришло на третий день.
    Указатель.... поле в структуре - указатель... указатель в который я раз за разом лезу в цикле...

    kir_rik, 30 Мая 2010

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