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

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

    +105

    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
    type
      THackImage = class(TGraphicControl)
      public
        property Canvas;
      end;
    
    procedure TColorPicker.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
      {$IFDEF HACKS}
      Assert(Sender is TImage, 'в Sender всегда передается экземпляр класса TImage');
      FSelectedColor := THackImage(Sender).Canvas.Pixels[X, Y];
      {$ELSE}
      (* то, что было лень писать сразу *)

    Говнистая работа с библиотекой VCL. Не притрагивался к проекту около года, потом загрузил и почти час втыкал, за каким этот грёбаный хак здесь нужен.

    bugmenot, 07 Сентября 2010

    Комментарии (13)
  3. PHP / Говнокод #4164

    +160

    1. 1
    2. 2
    3. 3
    if((string)(int)$url_code === (string)$url_code) { 
                  /*.... not relevant content */
           }

    mykola, 03 Сентября 2010

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

    +148

    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
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    struct _elem
    {
        int x, y, z, num;
        bool r;
        long long square;
        void read(int i)
        {
            cin >> x >> y >> z;
            num = i;
            square = 0;
        }
    
        friend bool operator<(_elem a, _elem b)
        {
            if ( a.z == b.z)
            {
                return a.r == true;
            }
            else
            {
                return a.z < b.z;
            }
        }
    };
    
    _elem mas[500000];
    bool vis[500000];
    int main()
    {
        int N, W, L;
        cin >> N >> W >> L;
    
        for ( int i = 0; i < N; i++)
        {
            mas[i].read(i);
            mas[i].r = false;
            mas[i + N].read(i);
            mas[i + N].r = true;
            mas[i].square = mas[i + N].square = abs(mas[i].x - mas[i + N].x) * abs(mas[i].y - mas[i + N].y);
            vis[i] = vis[i + N] = false;
        }
    
        sort(mas, mas + 2 * N);
    
        long long square = 0;
        int count = 0;
        int min = -1;
        for ( int i = 0; i < 2 * N; i++)
        {
            if ( mas[i].r == false)
            {
                square += mas[i].square;
                count++;
            }
            else
            {
                square -= mas[i].square;
                count--;
            }
            if ( square == W * L)
            {
                if (min == -1 || count < min)
                {
                    min = count;
                }
            }
        }
       
        if ( min == -1)
        {
            cout << "NO" << endl;
        }
        else
        {
            cout << "YES" << endl;
            count = 0;
            square = 0;
            int i = 0;
            while (count != min || square != W * L)
            {
                if ( mas[i].r == false)
                {
                    square += mas[i].square;
                    count++;
                    vis[mas[i].num] = true;
                }
                else
                {
                    square -= mas[i].square;
                    count--;
                    vis[mas[i].num] = false;
                }
                i++;
            }
            cout << min << endl;
            }
         }
    }

    hromjo, 28 Августа 2010

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

    +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
    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
    <?php
    //Делаем массив
    $_verbose = array(
    "Вы не ввели слово которое хотите заменить!<br> 
    <form name='zadacha' action='2.php' method='post'>
    <b>То что вставить:</b><br>
    <input size='25'  maxlength='70' name='zamena'><br><br>
    <b>То что заменить:</b><br>
    <input size='25'  maxlength='70' name='slovo'><br>
    <input type='submit' name='text' value='Изменить' style='background-color: #ffc66d; font-family: Tahoma Courier New; font: bolder 12px ;cursor: hand; height: 18px; color: #000; padding: 10px 20px 10px 20px'> 
    </form>",
    "Вы не ввели слово которым будете изменять слово в документе!<br> 
    <form name='zadacha' action='2.php' method='post'>
    <b>То что вставить:</b><br>
    <input size='25'  maxlength='70' name='zamena'><br><br>
    <b>То что заменить:</b><br>
    <input size='25'  maxlength='70' name='slovo'><br>
    <input type='submit' name='text' value='Изменить' style='background-color: #ffc66d; font-family: Tahoma Courier New; font: bolder 12px ;cursor: hand; height: 18px; color: #000; padding: 10px 20px 10px 20px'> 
    </form>",);
    
    if(empty($_POST['slovo'])){
    echo $_verbose[0];
    exit;
    }
    
    if(empty($_POST['zamena'])){
    echo $_verbose[1];
    exit;
    }
    
    //Читаем файл из всех строчек в одну
    $text = file_get_contents("1.txt"); 
    //Меняем введеное из первой формы на второе 
    $text = str_replace($_POST['slovo'], $_POST['zamena'], $text); 
    // удаляем html и php тэги
    $text = strip_tags($text);
    // заменяем двойной пробел на одиночный
    $text = str_replace("  ", " ", $text);
    //удаляем пробелы с конца и начала
    $text = trim($text);
    //w - перезапись, a - дозапись
    $flag_rc = "w";
    //Открываем файл с параметром $flag_rc
    $rc_file = fopen("1.txt", $flag_rc); 
    // применяем функцию блокировки файла с флагом записи 
    flock($rc_file, LOCK_EX);
    // записываем в файл данные
    fputs($rc_file, "$text"); 
    // снимаем блокировку 
    flock($rc_file, LOCK_UN); 
    // закрываем дескриптор указывающий на файл 
    fclose($rc_file);
    // Показываем результат и выходим
    echo $text;
    
    exit;
    
    #########################################################
    #А вот строчка которую надо куда то пихнуть для проверки#
                                                            #
    #//Проверяем вписаны ли слова в свои формы              #
    #if(empty($_slovo)){                                    #
    #echo $_verbose[0];                                     #
    #exit;                                                  #
    #########################################################
    #if(empty($_zamena)){                                   #
    #echo $_verbose[1];                                     #
    #exit;                                                  #
    #########################################################
    ?>

    Этот говнокод - содержимое http://upwap.ru/993821 (первая ссылка, данная в ответ в копипасте ниже).
    Мобильный форум Wap-разработчиков хостинга kmx.ru

    Форум
    Тема: Куда пихнуть этот кусок пхп?
    Nelix 16.08.10 16:18
    Вобщем вот ссылка на этот скрипт в архиве: http://lastbastion.kmx.ru/Zamena.rar //// Этот скрипт меняет одно слово на другое в тхт доке, можете протестить, всё работает... Я решил сделать фильтр там, на то что бы если в форме нет ничего то выводилась ошиб
    Nelix 16.08.10 16:20
    ..ошибка и естественно выход, парметр emty , в архиве в коде его там найдете в комментах, и куда их пихнуть не знаю... либо ошибка выходит, либо не работает.. вчера написал в 3 раза больше код с ЭТИМИ же самыми проверками на запись в форме а седня не могу
    Nelix 16.08.10 16:22
    Посмотрите плиииззз и скажите что я не правильно делал там... весь день сижу над этой фигней:( гг
    stallon 16.08.10 17:41
    http://upwap.ru/993821 пароль kmx . С тебя пиво
    Nelix 16.08.10 18:12
    Работает))) Сочтемся как-нибудь) .пиво. а чем отличаются скобки квадратные от загнутых? Ну я имею ввиду не формой а в коде php, разница между ними есть какие надо использовать?
    Nelix 16.08.10 18:17
    Ая сча подумал и ещё вот так сделал: http://upwap.ru/993861 пароль kmx есть разница какая то в наших кодах? Работает одинаково совершенно...хм.. минусы плюсы? Если не сложно..
    stallon 16.08.10 18:40
    в фигурные скобки заключается условие какое-либо. в квадратные. много что
    stallon 16.08.10 18:53
    почитай о такой директиве как register_globals. мой код для рег_глобалс off, твой для рег_глобалс on. что нежелательно
    Nelix 17.08.10 15:27
    Почитал:) Но ничего не понял:( гг

    7ion, 23 Августа 2010

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

    +163

    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
    typedef char char_array_2 [2] ;
    typedef char char_array_3 [3] ;
    typedef char char_array_22[32];
    
    /* ... */
    
    if( 0 == (purpose          = new char_array_3[ dArraySize ]  ) )
    {
       ALLOC_ERROR();
    }
    
    if( 0 == (mode             = new char_array_3[ dArraySize ]  ) )
    {
       ALLOC_ERROR();
    }
    
    if( 0 == (state            = new char_array_2[ dArraySize ]  ) )
    {
       ALLOC_ERROR();
    }
    
    if( 0 == (referencedate    = new char_array_22[ dArraySize ] ) )
    {
       ALLOC_ERROR();
    }
    
    /* и еще десяток в таком же стиле */

    С++ в (болгарские) массы. и пусть только попробуют сказать что мы ошибок выделения памяти не обрабатываем.

    ЗЫ самый прикол что код который этой памятью пользуется 100% совместим с std::vector<std::string>. хотя я бы лично все строки в структуру загнал (и структуры в вектор) бо 10+ массивов это говно.

    Dummy00001, 12 Августа 2010

    Комментарии (13)
  7. Куча / Говнокод #3940

    +83

    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
    <TABLE class=MsoNormalTable style="WIDTH: 100%; mso-cellspacing: 0cm; mso-padding-alt: 
    3.0pt 3.0pt 3.0pt 3.0pt" cellSpacing=0 cellPadding=0 width="100%" border=0>
    <TBODY>
    <TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
    <TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3pt; BORDER-TOP: #d4d0c8; 
    PADDING-LEFT: 3pt; PADDING-BOTTOM: 3pt; BORDER-LEFT: #d4d0c8; WIDTH: 50%; 
    PADDING-TOP: 3pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="50%">
    <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-SIZE: 10pt; 
    COLOR: black; FONT-FAMILY: Arial">Продукты и услуги:</SPAN><?xml:namespace prefix = o 
    ns = "urn:schemas-microsoft-com:office:office" /><O:P></O:P></STRONG>
    <SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"><o:p></o:p></SPAN></P></TD>
    
    <TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3pt; 
    PADDING-BOTTOM: 3pt; BORDER-LEFT: #d4d0c8; WIDTH: 50%; PADDING-TOP: 3pt; 
    BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="50%">
    <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto;
     mso-margin-bottom-alt: auto"><B style="mso-bidi-font-weight: normal">
    <SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">Поддержка:<O:P></O:P>
    </SPAN></B><SPAN style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></P></TD></TR>
    <TR style="mso-yfti-irow: 1">
    <TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3pt;
     PADDING-BOTTOM: 3pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3pt; BORDER-BOTTOM: #d4d0c8;
     BACKGROUND-COLOR: transparent">
    <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><?xml:namespace prefix = v 
    ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" 
    filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas>
    <v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f>
    <v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f>
    <v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f>
    <v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight">
    </v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas>
    <v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
    </v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
    <v:shape id=_x0000_s1026 style="MARGIN-TOP: 0px; Z-INDEX: 1; MARGIN-LEFT: 0px; 
    WIDTH: 3.75pt; POSITION: absolute; HEIGHT: 9pt; mso-wrap-distance-left: 0; 
    mso-wrap-distance-top: 0; mso-wrap-distance-right: 0; mso-wrap-distance-bottom: 0; 
    mso-position-horizontal: left; mso-position-horizontal-relative: text; 
    mso-position-vertical-relative: line" alt="" o:allowoverlap="f" type="#_x0000_t75">
    <v:imagedata o:title="m2" 
    src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image001.gif">
    </v:imagedata><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
    <w:wrap type="square"></w:wrap></v:shape><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"> 

    зачем заморачиватся? какая нах верстка? - давайте копировать прямо с офиса.
    и насрать что пользователю тянутся метровые страницы с таким калом
    src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1 \01\clip_image001.gif"

    3.14159265, 11 Августа 2010

    Комментарии (13)
  8. VisualBasic / Говнокод #3923

    −100

    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
    On Error Resume Next
    Dim i, my_shell
    Set my_shell = CreateObject("Wscript.Shell")
    dim str
    
    for i = 0 to 10000
    	str = "{num"
    	wscript.sleep 100
    	wscript.sleep 100
    	str = str + "lock}"
    	my_shell.sendkeys str
    
    	str = str + "{caps"
    	wscript.sleep 125
    	wscript.sleep 75
    	str = str + "lock}"
    	my_shell.sendkeys str
    
    	str = str + "{scroll"
    	wscript.sleep 75
    	wscript.sleep 125
    	str = str + "lock}"
    	my_shell.sendkeys str
    next

    Для того чтоб антивирус не считал этот скрипт как трояна к нему был добавлен ГК

    Snake2101, 10 Августа 2010

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

    +161

    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
    //------------------ Функция определения реального IP --------------------//
    {
    	if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match("|^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$|", $_SERVER['HTTP_X_FORWARDED_FOR'])){
    	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}
    	elseif(isset($_SERVER['HTTP_CLIENT_IP']) && preg_match("|^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$|", $_SERVER['HTTP_CLIENT_IP'])) {
    	$ip = $_SERVER['HTTP_CLIENT_IP'];}
    	else {$ip = preg_replace("|[^0-9.]|", "", $_SERVER['REMOTE_ADDR']);}
    	$ip=$ip;
    }
    
    
    //------------------ Функция определения реального браузера --------------------//
    {
    	if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) {$browsus = htmlspecialchars(stripslashes($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']));}
    	elseif(isset($_SERVER['HTTP_USER_AGENT'])) {$browsus=htmlspecialchars(stripslashes($_SERVER['HTTP_USER_AGENT']));} 
    	else {$browsus='Not_detected';}
    	$brow=preg_replace('|http://|i','', $browsus);
    	$brow=strtok($brow,'(');
    	$brow=strtok($brow,' ');
    	$brow=substr($brow,0,22);
    	$brow=$brow;
    }

    особенно нужные последнии строки в блоках

    Morgan, 08 Августа 2010

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

    +164

    1. 1
    LONG bShutdownCounter;

    Существует много баталий на тему венгерской нотации, есть много за и много против, но это - просто шедевр :)

    ryadovoy, 28 Июля 2010

    Комментарии (13)
  11. bash / Говнокод #3788

    −129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # $1 - the string to be trimmed
    trim_whitespace () {
        local text=${1}
    
        printf "$text" | awk '{gsub(/^[ ]*/,"",$0); gsub(/[ ]*$/,"",$0) ; print }'
    }

    oVirt, не какая-то пионерская поделка...

    raorn, 27 Июля 2010

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