1. Лучший говнокод

    В номинации:
    За время:
  2. 1C / Говнокод #9729

    −122

    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
    Функция ПреобразованиеДаты(Дата) Экспорт
    Если НЕ ПустаяСтрока(Дата) Тогда	
    	ГодКраткий = Прав(Дата, 2);
    	Если 		ГодКраткий = "83" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1983";		
    		ИначеЕсли   ГодКраткий = "84" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1984";
    		ИначеЕсли   ГодКраткий = "85" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1985";	
    		ИначеЕсли   ГодКраткий = "86" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1986";	
    		ИначеЕсли   ГодКраткий = "87" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1987";	
    		ИначеЕсли   ГодКраткий = "88" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1988";	
    		ИначеЕсли   ГодКраткий = "89" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1989";	
    		ИначеЕсли   ГодКраткий = "90" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1990";	
    		ИначеЕсли   ГодКраткий = "91" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1991";	
    		ИначеЕсли   ГодКраткий = "92" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1992";	
    		ИначеЕсли   ГодКраткий = "93" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1993";	
    		ИначеЕсли   ГодКраткий = "94" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1994";	
    		ИначеЕсли   ГодКраткий = "95" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1995";	
    		ИначеЕсли   ГодКраткий = "96" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1996";	
    		ИначеЕсли   ГодКраткий = "97" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1997";	
    		ИначеЕсли   ГодКраткий = "98" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1998";	
    		ИначеЕсли   ГодКраткий = "99" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "1999";	
    		ИначеЕсли   ГодКраткий = "00" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2000";	
    		ИначеЕсли   ГодКраткий = "01" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2001";	
    		ИначеЕсли   ГодКраткий = "02" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2002";	
    		ИначеЕсли   ГодКраткий = "03" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2003";	
    		ИначеЕсли   ГодКраткий = "04" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2004";	
    		ИначеЕсли   ГодКраткий = "05" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2005";	
    		ИначеЕсли   ГодКраткий = "06" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2006";	
    		ИначеЕсли   ГодКраткий = "07" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2007";	
    		ИначеЕсли   ГодКраткий = "08" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2008";	
    		ИначеЕсли   ГодКраткий = "09" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2009";	
    		ИначеЕсли   ГодКраткий = "10" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2010";	
    		ИначеЕсли   ГодКраткий = "11" Тогда
    			ДатаНовая = "" + Лев(Дата,6) + "2011";					
    		КонецЕсли;
    
    ДатаЗначение = Дата(Сред(ДатаНовая,7,4),Сред(ДатаНовая,4,2),Сред(ДатаНовая,1,2));	
    Возврат ДатаЗначение;	
    КонецЕсли;
    КонецФункции

    Прихожу сегодня с утра и вижу вот такой код коллеги. Надо теперь психологически восстанавливаться.

    i-ale, 22 Марта 2012

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

    +997

    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
    Can you think of an algorithm that performs the below:
    “The Big Brown Fox”    	     => “Fox Brown Big The”
    “How are you?”                 => “you? are How”
    
    std::string reverse_words( const std::string& str )
    {
      std::string result;
      result.reserve( str.length() );
      
      size_t word_begin = 0;
      while( word_begin < str.length() )
      {
        const size_t pos = str.find_first_of( ' ', word_begin );
        pos = (pos != string::npos) ? pos : str.length();
        std::string word = str.substr( word_begin, pos-word_begin );
        word_begin = pos + 1;
    
        if (result.length() > 0)
        {
          word.append( 1, ' ');
        }
        result.insert( 0, word );
      }
      return result;
    }

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

    pushkoff, 17 Декабря 2011

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

    +997

    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
    class fileOutBuf : public streambuf
    {
    public:
        // ...
        typedef char        char_type;
        typedef int         int_type;
        typedef int         streamsize;
        // ...
        int printf( const char * fpFormat, ... );
    
        inline int vprintf( const char * fpFormat, va_list fvaList )
        {
            if ( NULL != dpFileDescriptor )
            {
                if ( true == sdVerboseFlag  && false == dSkipVerboseOutput)
                    vfprintf( dpVerboseFileDescriptor, fpFormat, fvaList );
    
                return vfprintf( dpFileDescriptor, fpFormat, fvaList );
            }
            else
            {
                if ( NULL != dpOutputFuncPtr )
                    return (*dpOutputFuncPtr)( fpFormat, fvaList );
            }
            return 0;
        }
        // ....
        virtual int_type overflow( int_type c = EOF );
        virtual streamsize xsputn( const char_type *s, streamsize n );
        // ....
    };
    
    int fileOutBuf::printf( const char * fpFormat, ... )
    {
        va_list lvaList;
        int lRet;
    
        va_start( lvaList, fpFormat );
    
        if ( NULL != dpFileDescriptor )
        {
            if ( true == sdVerboseFlag  && false == dSkipVerboseOutput)
                vfprintf( dpVerboseFileDescriptor, fpFormat, lvaList );
    
            lRet = vfprintf( dpFileDescriptor, fpFormat, lvaList );
        }
        else
        {
            if ( NULL != dpOutputFuncPtr )
                lRet = (*dpOutputFuncPtr)( fpFormat, lvaList );
        }
    
        va_end( lvaList );
    
        return lRet;
    }
    
    fileOutBuf::int_type fileOutBuf::overflow( int_type c )
    {
        if ( NULL != dpFileDescriptor )
        {
            if ( true == sdVerboseFlag  && false == dSkipVerboseOutput)
                fputc( c, dpVerboseFileDescriptor );
    
            return fputc( c, dpFileDescriptor );
        }
        else
            return fileOutBuf::printf( "%c", c );
    }
    
    fileOutBuf::streamsize fileOutBuf::xsputn( const fileOutBuf::char_type *s, fileOutBuf::streamsize n )
    {
        if ( NULL != dpFileDescriptor )
        {
            if ( true == sdVerboseFlag  && false == dSkipVerboseOutput)
                fwrite( s, sizeof( char_type ), n, dpVerboseFileDescriptor );
    
            return fwrite( s, sizeof( char_type ), n, dpFileDescriptor );
        }
        else
            return fileOutBuf::printf( "%*s", n, s );
    }

    нетривиальная капипаста или делаем из мухи слона.

    ЗЫ после удаления всей капипасты, от класа в целом осталось что-то около 50 строк.

    Dummy00001, 06 Декабря 2011

    Комментарии (51)
  5. PHP / Говнокод #8522

    +170

    1. 1
    2. 2
    3. 3
    private function _________close ($param_name)
    
     private function __________open ($param_name)

    "это для того чтобы видно было в коде"

    Lure Of Chaos, 15 Ноября 2011

    Комментарии (51)
  6. ActionScript / Говнокод #8429

    −106

    1. 1
    2. 2
    if (_start > _end) _start = _end;
       if (_end < _start) _end = _start;

    c пламенным приветом = )

    Lure Of Chaos, 05 Ноября 2011

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

    +154

    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
    class Allocator
    {
    public:
      
      virtual void *Alloc (size_t) = 0;
      virtual void Dealloc (void *) = 0;
    
      struct Allocation
      {
        Allocator *m_pAllocator[1];
    
        static void Dealloc (void *ptr)
        {
          if (ptr)
            ((Allocator **)ptr)[-1]->Dealloc (((Allocator **)ptr)-1);
        }
      };
    };
    
    class UsesAllocator
    {
    public:
      void *operator new (size_t aSize,Allocator &aAllocator)
      {
        Allocator::Allocation *pResult =
          (Allocator::Allocation *)
          aAllocator.Alloc (aSize+sizeof (Allocator::Allocation));
        if (!pResult) throw std::bad_alloc ();
        pResult->m_pAllocator[0] = &aAllocator;
        return pResult->m_pAllocator+1;
      }
    
      void *operator new [] (size_t aSize,Allocator &aAllocator)
      {
        Allocator::Allocation *pResult =
          (Allocator::Allocation *)
          aAllocator.Alloc (aSize+sizeof (Allocator::Allocation));
        if (!pResult) throw std::bad_alloc ();
        pResult->m_pAllocator[0] = &aAllocator;
        return pResult->m_pAllocator+1;
      }
    
      void operator delete (void *ptr,Allocator &)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete (void *ptr)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete [] (void *ptr,Allocator &)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete [] (void *ptr)
      { Allocator::Allocation::Dealloc (ptr); }
    };
    ...
    
    class MyClass: /*virtual*/ public UsesAllocator
    {
    public:
      ...
    };
    ...
    MyClass *PROFIT = new (allocatorOfOurInterest) MyClass (...);

    http://www.gamedev.ru/flame/forum/?id=153274

    >Посоны! Оказывается, оператор new можно перегружать!

    ohlol, 08 Октября 2011

    Комментарии (51)
  8. JavaScript / Говнокод #7243

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    (function () {
    	var backgroundPosition = getComputedStyle(document.querySelector('a.comment-vote-on')).backgroundPosition;
    	Array.prototype.forEach.call(
    		document.querySelectorAll('span.comment-vote-on'), 
    		function (element) {
    			element.style.backgroundPosition = backgroundPosition;
    		}
    	);
    })()

    По просьбам телезрителей публикуется букмарклет невинности,
    который избавляет от необходимости фотошопить скриншот для иллюстрации заявлений типа "Это не я мину совал!".
    Я ленив, поэтому говнокод тоже присутствует.

    bugmenot, 14 Июля 2011

    Комментарии (51)
  9. PHP / Говнокод #7215

    +168

    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
    function WikiExtractArticleUrl($str) { // Декодирование кирилицы из урла
     
        ErrorsOff(); // отключаем вывод ошибок нашего обработчика, дабы iconv не сорил
     
        try { // пытаемся с помощью iconv перекодировать кирилицу из утф8 в сп1251, подсунув декодированную кирилицу (из %12%%2D  и т.д.)
            $text = iconv('UTF-8', 'CP1251', rawurldecode($str));
            throw new Exception(''); // создаем новое исключение, дабы похапэ отстал от нас
        } catch(Exception $e) { // ловим ошибку iconv, типа перекодировать не надо
            $text = urldecode($str); // тупо декодируем
        }
     
        ErrorsOn(); // выключаем ошибки и возвращаем результ
     
        return $text;
     
    }

    Функция для получения крилицы из ЧПУ урла (сайт в кодировке win1251).

    Мартин, 09 Июля 2011

    Комментарии (51)
  10. PHP / Говнокод #6963

    +154

    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
    include "./include/db.conf.php";
    $con = mysql_connect($DB["host"],$DB["user"],$DB["pass"]) or die ("could not connect:".mysql_error());
    mysql_set_charset('utf8');
    mysql_select_db($DB["dbName"]) or die ("could not connect:".mysql_error());
    
    $hash = $_GET['hash'];
    $login = $_GET['login'];
    echo "SELECT id FROM reg WHERE log = '".$login."' AND hash = '".$hash."'";
    
    $query = mysql_query("SELECT id FROM reg WHERE log = '".$login."' AND hash = '".$hash."'") or die ("MYSQL error".mysql_error());
    
    if ($query) {
        while($row = mysql_fetch_array($query)) {
        echo row['id'];}
                
    $query = mysql_query("UPDATE reg SET commit=1 WHERE id=".row['id'])
         or die ("MYSQL error".mysql_error());}

    Знакомая поделилась шедевром. Так, конечно, можно... но в общем комментарии излишни.
    Да, форматирование оригинала сохранено.

    0rt, 16 Июня 2011

    Комментарии (51)
  11. PHP / Говнокод #6758

    +173

    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
    if(  ( (!empty($HTTP_COOKIE_VARS["lang"])) and ($_POST["lang"] != "") )
    or ( (empty($HTTP_COOKIE_VARS["lang"])) and ($_POST["lang"] != "") ) )
    {
    	setcookie ("lang","",time()+(60*60*24*30),"","");
    	setcookie ("lang",$_POST["lang"],time()+(60*60*24*30),"","");
    	$lang = $_POST[lang];
    }
    
    if ( (empty($HTTP_COOKIE_VARS["lang"])) and (!isset($_POST["lang"])) )
    $lang = $def_language;
    
    if ( (!empty($HTTP_COOKIE_VARS["lang"])) and (!isset($_POST["lang"])) )
    $lang = $HTTP_COOKIE_VARS["lang"];

    Самый ужасный скрипт который встречал когда либо, joker board. и автор просит за него приличную сумму денег! Там код хоть целиком сюда вставляй...

    zigzagkms, 26 Мая 2011

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