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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    if (request->status().is_success() &&
          (request->GetResponseCode() / 100) == 2) {
          /* блаблабла */
      }

    Было случайно откопано в исходниках хромиума (http://src.chromium.org/svn/trunk/src/webkit/appcache/appcache_update_job.cc). И первый вопрос который возникает это "Ну вот нахера???".

    POPSuL, 11 Марта 2011

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

    +162

    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
    void Exf2dMW::closeEvent(QCloseEvent* event)
    {
      int win_num = _winManager->numberOfModellingWindows();
      // if more than one modelling windows, just destroy current one:
      if (win_num > 1) {
        event->accept();
        delete this;
      }
      // if only one window and handle closing model properly, then destroy it:
      else {
        if( handleCloseModel() ) {
          event->accept();
          delete this;
          delete _winManager;
        }
        else
          event->ignore();
      }
    }

    Еще кусочек говнокода коллеги, я не думал что так можно писать..

    kitaec, 08 Марта 2011

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

    +158

    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
    #include <iostream.h>
    #include <stdlib.h>
    #define make(a,b) new a[b];
    #define init(a,b) for(int i=0; i<b; i++) a[i]=random(10);
    #define MyType int
    template<class type>
    void sort(type *m,int  n)
     {
     type *m1 = m;
       for(int i=0; i<n-1; i++)
      		{
            for(int j=0; j<n-i-1; j++)
               {
               if (*m1>*(m1+1))
            	    {
                                              MyType temp;
       		      temp=*m1;
      	    	       *m1=*(m1+1);
    		       *(m1+1)=temp;
             	  }
               m1++;
               }
           m1=m;
          }
     }
    
     template<class type>
     void input(type *m,int num)
     {
     type *m1=m;
     for(int i=0;i<num; i++)
      		{
             cin>>*m1;
              m1++;
          }
      m1=m;
      cout << endl;
     }
    
     template<class type>
     void output(type  *m, int n)
     {
     for(int i=0;i<n; i++)
      		{
             cout << *(m+i)<<" ";
          }
     }
    
     main()
     {
     int len;
      cout << "Vvedite razmer massiva" << endl;
      cin >> len;
    
      MyType *mas1 = make(MyType,len);
      input(mas1,len);
      //init(mas1,len);
      output<MyType>(mas1,len);
      sort<MyType>(mas1,len);
      cout<<endl;
      output<MyType>(mas1,len);
      cout<<endl;
      system("pause");;
     }

    Делалось на Borland C++ 5.02 , что прикольно без макроса make , если память выделяется просто в теле, то ревет, что память ниразу не выделена . Делали ее часика в 4 утра к зачету, препод конечно прибалдел от таких раскладов, но покопавшись ничего сам сделать не смог, плюнул на это дело и зачет поставил.

    USERNAME, 08 Марта 2011

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

    +171

    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
    bool BMPTextureLoader::Load (GraphicContent **content, string file_name)
    {
      int width, height;
      int bpp;
      unsigned char *pixels;
      ifstream file (file_name.c_str());
      char temp[4];
      long unsigned int data_shift;
    //Read BMP identifier (bfType)
      file.read(temp,2);
      temp[2] = '\0';
      if ((temp[0] != 'B') || (temp[1] != 'M'))
      {
        return false;
      }
    //Ignore file size and two reserved zero (bfSize, bfReserved1, bfReserved2)
      file.ignore(8);
    //Read pixel-data shift (bfOffBits)
      file.read(temp,4);
      data_shift = 0;
      for (int i=0; i<4; i++)
      {
        data_shift += (int)(temp[i]) * pow(256.0,i);
      }
      if (data_shift < 54)
      {
        return false;
      }
    //Ignore information data size (biSize)
      file.ignore(4);  
    //Read image width (biWidth)
      file.read(temp,4);
      width = 0;
      for (int i=0; i<4; i++)
      {
        width += (int)(temp[i]) * pow(256.0,i);
      }
      if (width < 0)
      {
        return false;
      }
    //Read image height (biHeight)
      file.read(temp,4);
      height = 0;  
      for (int i=0; i<4; i++)
      height += (int)(temp[i]) * pow(256.0,i);
      if (height < 0)
      {
        return false;
      }
    //Read mandatory 1 (biPlanes)
      file.ignore(2);
    //Read bite per pixel (biBitCount)
      file.read(temp,2);
      int bipp = 0;
      bipp += (int)(temp[0]) + (int)(temp[1])*256;
      if ((bipp <= 0) || (bipp / 8. != 3))
      {
        return false;
      }
      bpp = 3;
    //Read compression type (biCompression)
      file.read(temp,4);
      int c_type = 0;
      for (int i=0; i<4; i++)
      {
        c_type += (int)(temp[i]) * pow(256.0,i);
      }
      if (c_type != 0)
      {
        return false;
      }
      file.close();
      file.open(file_name);
      file.ignore (data_shift);
    //Read pixel data
      pixels = new unsigned char[width*height*bpp];
      for (int i=height-1; i>=0; i--)
      {
        for (int j=0; j<width; j++)
        {
          file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp + 2]), 1);
          file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp + 1]), 1);
          file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp]), 1);
        }
      }
    //Create texture
      Terminal terminal;

    Считываю BMP файл. Размеры, количество бит на пиксель и тип сжатия считываются нормально. Бит на пиксель 24, сжатия нет(0). Дальше я переоткрываю файл и отступаю нужное кол-во пикселей (смещение данных). После этого считываю данные о цветах пикселей. С рисунками нарисованными непосредственно мной всё проходит нормально. Но с картинками взятыми из интернета происходит сбой. После определённого пикселя считывание прекращается. По дебагу получается что при достижение этого пикселя наступает конец файла. Пробовал вырезать куски изображения из нета и переносить в свой файл. Одни куски переносятся и всё нормально, другие обрывают считывание. Наблюдал эту проблему у нескольких рисунков. Возможно кто-то сталкивался с такой проблемой?

    Источник: http://www.gamedev.ru/code/forum/?id=144831

    TarasB, 07 Марта 2011

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

    +177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    enum
    {
       QUEST_5727              = 5727,
       QUEST_6566              = 6566,
    };

    chaoswithin, 06 Марта 2011

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

    +171

    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
    void Cryptogram(const vector<string> &vector1, vector<string> &vector2)
    {
      string word;
      char new_letter;
      long i, j, wordSize, vecSize, vecSize2;
      vecSize = vector1.size();
      for(j=0; j<vecSize; j++)
        {
          word = vector1[j];
          //cout<<word<<endl;
          wordSize = word.size();
          cout<<wordSize<<endl;
          for(i=0; i<wordSize; i++)
      {
        new_letter = word[i];
        cout<<"& " << new_letter<< " " << isalpha(new_letter) << endl;
        if(isalpha(new_letter)==true)
          {
            if(isupper(new_letter)==true)
        {
    
          if (new_letter == 'A')
            new_letter = 'W';
          else if(new_letter == 'B')
            new_letter = 'Y';
          else if(new_letter == 'C')
            new_letter = 'I';
          else if(new_letter == 'D')
            new_letter = 'J';
          else if(new_letter == 'E')
            new_letter = 'K';
          else if(new_letter == 'F')
            new_letter = 'C';
          else if(new_letter == 'G')
            new_letter = 'U';
          else if(new_letter == 'H')
            new_letter = 'V';
          else if(new_letter == 'I')
            new_letter = 'D';
          else if(new_letter == 'J')
            new_letter = 'P';
          else if(new_letter == 'K')
            new_letter = 'Q';
          else if(new_letter == 'L')
            new_letter = 'L';
          else if(new_letter == 'M')
            new_letter = 'Z';
          else if(new_letter == 'N')
            new_letter = 'H';
          else if(new_letter == 'O')
    
            new_letter = 'T';
          else if(new_letter == 'P')
            new_letter = 'G';
          else if(new_letter == 'Q')
            new_letter = 'A';
          else if(new_letter == 'R')
            new_letter = 'B';
          else if(new_letter == 'S')
            new_letter = 'M';
          else if(new_letter == 'T')
            new_letter = 'X';
          else if(new_letter == 'U')
            new_letter = 'E';
          else if(new_letter == 'V')
            new_letter = 'F';
          else if(new_letter == 'W')
            new_letter = 'O';
          else if(new_letter == 'X')
            new_letter = 'N';
          else if(new_letter == 'Y')
            new_letter = 'R';
          else if(new_letter == 'Z')
            new_letter = 'S';
        }

    Cryptogram function, it's much longer, with 26 if statements if the letter is lowercase.

    BigEndian, 06 Марта 2011

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

    +162

    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
    int main () {
            char    bStr[] = "<H1>",
                            eStr[] = "</H1>",
                            ifName[] = "E:\\dostat.txt";
            ifstream ifst;
            int i;
     
            ifst.open(ifName);
            if(!ifst)
                    exit(-1);
     
            for(;!ifst.eof();){
                    for(i=0;!ifst.eof()&&ifst.get()==bStr[i];i++);
                    ifst.unget();
                    if(!bStr[i]){
                            for(;;){
                                    for(i=0;!ifst.eof()&&ifst.get()==eStr[i];i++);
                                    if(!eStr[i])
                                            break;
                                    for(;i>=0;i--)
                                            ifst.unget();
                                    cout<<(char)ifst.get();
                            }
                            cout<<endl<<"--------------------------------"<<endl;
                    }
                    else
                            ifst.get();
            }
            cin.get();
            return 0;
    }

    qbasic, 05 Марта 2011

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

    +166

    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
    bool ok = false;
     
            // инициализируем WinInet
            HINTERNET hInternet =
                    ::InternetOpen(
                            TEXT("WinInet Test"),
                            INTERNET_OPEN_TYPE_PRECONFIG,
                            NULL,NULL,
                            0);
     
            if (hInternet != NULL) {
                    // открываем HTTP сессию
                    HINTERNET hConnect =
                            ::InternetConnect(
                                    hInternet,
                                    TEXT(URL),
                                    INTERNET_DEFAULT_HTTP_PORT,
                                    NULL,NULL,
                                    INTERNET_SERVICE_HTTP,
                                    0,
                                    1u);
     
                    if (hConnect != NULL) {
                            // открываем запрос
                            HINTERNET hRequest =
                                    ::HttpOpenRequest(
                                            hConnect,
                                            TEXT("GET"),
                                            TEXT(DOC),
                                            NULL,
                                            NULL,
                                            0,
                                            INTERNET_FLAG_KEEP_CONNECTION,
                                            1);
     
                            if (hRequest != NULL) {
                                    // посылаем запрос
                                    BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0);
                                    if (bSend) {
                                            // создаём выходной файл
                                            ofstream fnews("news.html",ios::out|ios::binary);
                                            
                        if (fnews.is_open())
                                            for (;;) {
                                                    // читаем данные
                                                    char  szData[1024];
                                                    DWORD dwBytesRead;
                                                    BOOL bRead =
                                                            ::InternetReadFile(
                                                                    hRequest,
                                                                    szData,sizeof(szData)-1,
                                                                    &dwBytesRead);
    
                                                    if (bRead == FALSE  ||  dwBytesRead == 0)
                                                            break;
     
                                                    // сохраняем результат
                                                    szData[dwBytesRead] = 0;
                                                    fnews << szData;
                                                    cout << szData;
     
                                                    ok = true;
                                            }
                                    }
                                    // закрываем запрос
                                    ::InternetCloseHandle(hRequest);
                            }
                            // закрываем сессию
                            ::InternetCloseHandle(hConnect);
                    }
                    // закрываем WinInet
                    ::InternetCloseHandle(hInternet);
            }

    qbasic, 05 Марта 2011

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

    +160

    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
    MainDM->ADOQ_pr_kontr_vert->SQL->Add(
            "SELECT Smena, Prostenok, Popravka, Val_zad_temp, t.Zam1, t.Zam2, t.Zam3, t.Zam4, "
            "@sr1:=((t.Zam1 + t.Zam2 + t.Zam3 + t.Zam4) / 4) as sredn, "
            "@p:= @sr1 - (avgtempr.avgZam1 + avgtempr.avgZam2 + avgtempr.avgZam3 + avgtempr.avgZam4) / 4 as popravka  from "
            "(SELECT avg(Zam1) as avgZam1, avg(Zam2) as avgZam2, avg(Zam3) as avgZam3, avg(Zam4) as avgZam4 from "
            "(SELECT "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam1, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam2, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam3, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam4 "
            "FROM kontroln_vertik WHERE kontroln_vertik.Date = \'2011-03-02\' "
            "and kontroln_vertik.Storona = 1  "
            "group by kontroln_vertik.Prostenok)  zameri) avgtempr, "
            "(SELECT kontroln_vertik.Smena,  kontroln_vertik.Prostenok, kontroln_vertik.Popravka, "
            "kontroln_vertik.Val_zad_temp, kontroln_vertik.Period_koks, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam1, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0  "
            "END) as Zam2, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0  "
            "END) as Zam3, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0   "
            "END) as Zam4  "
            "FROM kontroln_vertik "
            "WHERE kontroln_vertik.Date = \'2011-03-02\' and   "
            "kontroln_vertik.Storona = 1  "
            "group by kontroln_vertik.Prostenok) t"
            );

    qbasic, 03 Марта 2011

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

    +159

    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
    TCHAR aS[22];
             m_pCurrentLine->mainPortStatistics.TOs = 0;
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.TOs);
    	SetDlgItemText(IDC_EDIT_MAIN_TIMEOUTS, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_MODE = 0; 
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_MODE);
    	SetDlgItemText(IDC_EDIT_MAIN_MODE, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_BREAK = 0; 
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_BREAK);
    	SetDlgItemText(IDC_EDIT_MAIN_BREAK, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_FRAME = 0; 
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_FRAME);
    	SetDlgItemText(IDC_EDIT_MAIN_FRAME, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_RXOVER = 0; 
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_RXOVER);
    	SetDlgItemText(IDC_EDIT_MAIN_RXOVER, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_TXFULL = 0; 
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_TXFULL);
    	SetDlgItemText(IDC_EDIT_MAIN_TXFULL, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_OVERRUN = 0;
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_OVERRUN);
    	SetDlgItemText(IDC_EDIT_MAIN_OVERRUN, aS);
    	m_pCurrentLine->mainPortStatistics.err_CE_RXPARITY = 0;
    	_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_RXPARITY);
    	SetDlgItemText(IDC_EDIT_MAIN_RXPARITY, aS);

    каждому элементу структуры mainPortStatistics присваивается значение 0, затем каждый раз форматируется строка и засылается в функцию SetDlgItemText. Вменяемый человек пользуется для обнуления структуры функцией memset а затем ставит текст "0" во все controls. А говнокодер думает ,что чем больше дерьмокода развести - тем круче

    ShuraKotov, 02 Марта 2011

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