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

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

    +112.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
    procedure TForm1.Button2Click(Sender: TObject);
    var
    result  : Tdatetime;
    begin
    Result := EncodeDate(1970, 1, 1) + ((strtofloat(edit26.Text)+(strtofloat(edit2.Text)*3600)) / 86400); {86400=No. of secs. per day}
    
    edit23.Text := formatdatetime('d', Result);
    edit24.Text := formatdatetime('m', Result);
    edit25.Text := formatdatetime('yyyy', Result);
    edit27.Text := formatdatetime('h', Result);
    edit28.Text := formatdatetime('n', Result);
    edit29.Text := formatdatetime('s', Result);
    edit30.text := datetimetostr(result);
    form1.ActiveControl := edit30;
    end;
    
    
    procedure TForm1.Button3Click(Sender: TObject);
    var
      x,y      : extended;
    begin
    edit12.Text := formatdatetime('d', datetimepicker2.date);
    edit17.Text := formatdatetime('m', datetimepicker2.date);
    edit18.Text := formatdatetime('yyyy', datetimepicker2.date);
    x := (EncodeDate(strtoint(edit18.text), strtoint(edit17.text), strtoint(edit12.text)) - EncodeDate(1970, 1, 1)) * 86400 ;
    y := (strtoint(edit20.text)*3600) + (strtoint(edit21.text)*60) + strtoint(edit22.text);
    x := x+y-(strtofloat(edit1.Text)*3600);
    edit19.Text := floattostr(x);
    form1.ActiveControl := edit19;
    end;

    Особенно старательный ковнокодер, умудрился растянуть на 30 строк то, что реально заняло у меня 8.
    ну я не говорю еще про большую описательную часть его кода.

    gorky, 15 Сентября 2009

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

    +68.6

    1. 1
    2. 2
    3. 3
    4. 4
    function isstring(str1,str2:string):boolean;
    begin
    result:=(AnsiPos(AnsiLowerCase(str1),AnsiLowerCase(str2))>0)
    end;

    Функция проверяет, содержит ли строка str2 строку str1 не учитывая регистр.
    Возвращает true, если содержит, в противном случае возвращает false.

    nikmihej, 14 Сентября 2009

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

    −176.1

    1. 1
    ДатаНачалаПериода = НачалоМесяца(Дата(Строка(Формат(ТекущийГод, "ЧГ=0")) + Строка(ТекущийМесяц) + "01"));

    Фрагмент кода от разработчиков конфигурации. Дело в том, что дату начала текущего месяца можно получить как НачалоМесяца(ТекущаяДата()). Даже если предположить, что переменные "ТекущийГод" и "ТекущийМесяц" содержат не актуальные значения (например, при перерасчете прошлых документов), достаточно выполнить НачалоМесяца(Дата(ТекущийГод, ТекущийМесяц, 1))

    polestnize, 08 Сентября 2009

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

    +158.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    static $badwords = array(
    ...
    '(?<=[_\d]) [гg]_?[оo]_?[вvb]_?[нnh]_?[оoаaяеeyу]', #говн[оаяеу]
    ...
    );

    самый дословный (мета-)говнокод.

    из censure.php -- Функция пытается определить наличие мата (нецензурных, матерных слов) в html-тексте.
    http://forum.dklab.ru/viewtopic.php?t=17146

    OlgaWolga, 05 Сентября 2009

    Комментарии (9)
  6. Pascal / Говнокод #1740

    +101.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
    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
    function DatePlusOneDay(Date: TDate): TDate;
    var
      Day, Month, Year: string;
    begin
      Day := Copy(DateToStr(Date), 1, 2);
      Month := Copy(DateToStr(Date), 4, 2);
      Year := Copy(DateToStr(Date), 7, 4);
      if frac(StrToFloat(Year) / 4) <> 0 then
        if (Month = '01') or (Month = '03') or (Month = '05') or (Month = '07') or (Month = '08') or (Month = '10') or (Month = '12') then
          if Day <> '31' then
            if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
            else Day := IntToStr(StrToInt(Day) + 1)
          else
          begin
            Day := '01';
            if StrToInt(Month) < 9 then
              Month := '0' + IntToStr(StrToInt(Month) + 1)
            else
              if Month = '12' then
              begin
                Month := '01';
                Year := IntToStr(StrToInt(Year) + 1);
              end
              else Month := IntToStr(StrToInt(Month) + 1);
          end
        else
          if (Month = '04') or (Month = '06') or
          (Month = '09') or (Month = '11') then
            if Day <> '30' then
              if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
              else Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then Month := '0' + IntToStr(StrToInt(Month) + 1)
              else Month := IntToStr(StrToInt(Month) + 1);
            end
          else
            if Day <> '28' then
              if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
              else Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then Month := '0' + IntToStr(StrToInt(Month) + 1)
              else Month := IntToStr(StrToInt(Month) + 1);
            end
      else
        if (Month = '01') or (Month = '03') or (Month = '05') or (Month = '07') or (Month = '08') or (Month = '10') or (Month = '12') then
          if Day <> '31' then
            if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
            else Day := IntToStr(StrToInt(Day) + 1)
          else
          begin
            Day := '01';
            if StrToInt(Month) < 9 then
              Month := '0' + IntToStr(StrToInt(Month) + 1)
            else
              if Month = '12' then
              begin
                Month := '01';
                Year := IntToStr(StrToInt(Year) + 1);
              end
              else
                Month := IntToStr(StrToInt(Month) + 1);
          end
        else
          if (Month = '04') or (Month = '06') or
          (Month = '09') or (Month = '11') then
            if Day <> '30' then
              if StrToInt(Day) < 9 then
                Day := '0' + IntToStr(StrToInt(Day) + 1)
              else
                Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then
                Month := '0' + IntToStr(StrToInt(Month) + 1)
              else
                Month := IntToStr(StrToInt(Month) + 1);
            end
          else
            if Day <> '28' then
              if StrToInt(Day) < 9 then
                Day := '0' + IntToStr(StrToInt(Day) + 1)
              else
                Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then
                Month := '0' + IntToStr(StrToInt(Month) + 1)
              else
                Month := IntToStr(StrToInt(Month) + 1);
            end;
      DatePlusOneDay := StrToDate(Day + '.' + Month + '.' + Year);
    end;

    Писалось, когда не знали о эквиваленте (Date + 1)

    SaNdMaN, 01 Сентября 2009

    Комментарии (9)
  7. JavaScript / Говнокод #1684

    +158.8

    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
    function h_circle_1_view() {
    	document.getElementById("circle_1").style.display = "block";
    	document.getElementById("circle_2").style.display = "none";
    	document.getElementById("circle_3").style.display = "none";
    	document.getElementById("circle_4").style.display = "none";
    	document.getElementById("circle_5").style.display = "none";
    	}
    	function h_circle_1_none() {
    	document.getElementById("circle_1").style.display = "none";
    	}
    	
    	function h_circle_2_view() {
    	document.getElementById("circle_1").style.display = "none";
    	document.getElementById("circle_2").style.display = "block";
    	document.getElementById("circle_3").style.display = "none";
    	document.getElementById("circle_4").style.display = "none";
    	document.getElementById("circle_5").style.display = "none";
    	}
    	function h_circle_2_none() {
    	document.getElementById("circle_2").style.display = "none";
    	}
    	
    	function h_circle_3_view() {
    	document.getElementById("circle_1").style.display = "none"; 
    	document.getElementById("circle_2").style.display = "none"; // прячем 1, 2
    	document.getElementById("circle_3").style.display = "block";	// показываем 3
    	document.getElementById("circle_4").style.display = "none";
    	document.getElementById("circle_5").style.display = "none";
    	}
    	function h_circle_3_none() {
    	document.getElementById("circle_3").style.display = "none";
    	}
    	
    	function h_circle_4_view() {
    	document.getElementById("circle_1").style.display = "none"; 
    	document.getElementById("circle_2").style.display = "none"; 
    	document.getElementById("circle_3").style.display = "none"; // прячем 1, 2
    	document.getElementById("circle_4").style.display = "block";	// показываем 3
    	document.getElementById("circle_5").style.display = "none";
    	}
    	function h_circle_4_none() {
    	document.getElementById("circle_4").style.display = "none";
    	}
    	
    	function h_circle_5_view() {
    	document.getElementById("circle_1").style.display = "none"; 
    	document.getElementById("circle_2").style.display = "none"; 
    	document.getElementById("circle_3").style.display = "none"; // прячем 1, 2
    	document.getElementById("circle_4").style.display = "none";	// показываем 3
    	document.getElementById("circle_5").style.display = "block";
    	}
    	function h_circle_5_none() {
    	document.getElementById("circle_5").style.display = "none";
    	}

    Натолкнулся вот при тестировании одного проекта

    Abductio, 25 Августа 2009

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

    +135.1

    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
    if ((Owner as Form1).ZakazdataGrid.Columns.Count == 0)
                {
                    (Owner as Form1).ZakazdataGrid.Columns.Add("KodTov", "");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("NazvaTov", "Товар");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("Kolvo", "Кол-во");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("NazvaEd", "Ед.");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("Suma", "Сумма");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("KolEd", "");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("Sostavnoy", "");
                    (Owner as Form1).ZakazdataGrid.Columns.Add("Sostav", "");
                    (Owner as Form1).ZakazdataGrid.Columns["Sostavnoy"].Visible = false;
                    (Owner as Form1).ZakazdataGrid.Columns["Sostav"].Visible = false;
                    (Owner as Form1).ZakazdataGrid.Columns["KodTov"].Visible = false;
                    (Owner as Form1).ZakazdataGrid.Columns["KolEd"].Visible = false;
                    (Owner as Form1).ZakazdataGrid.Columns["NazvaTov"].Width = (int)((Owner as Form1).ZakazdataGrid.Width * 0.5);
                    (Owner as Form1).ZakazdataGrid.Columns["NazvaTov"].SortMode = DataGridViewColumnSortMode.NotSortable;
                    (Owner as Form1).ZakazdataGrid.Columns["Kolvo"].Width = (int)((Owner as Form1).ZakazdataGrid.Width * 0.15);
                    (Owner as Form1).ZakazdataGrid.Columns["Kolvo"].SortMode = DataGridViewColumnSortMode.NotSortable;
                    (Owner as Form1).ZakazdataGrid.Columns["NazvaEd"].Width = (int)((Owner as Form1).ZakazdataGrid.Width * 0.15);
                    (Owner as Form1).ZakazdataGrid.Columns["NazvaEd"].SortMode = DataGridViewColumnSortMode.NotSortable;
                    (Owner as Form1).ZakazdataGrid.Columns["Suma"].Width = (int)((Owner as Form1).ZakazdataGrid.Width * 0.2);
                    (Owner as Form1).ZakazdataGrid.Columns["Suma"].SortMode = DataGridViewColumnSortMode.NotSortable;
                    (Owner as Form1).ZakazdataGrid.RowsDefaultCellStyle.Font = new Font("Times New Roman", FontSize - 5);
                    (Owner as Form1).ZakazdataGrid.ColumnHeadersDefaultCellStyle.Font = new Font("Times New Roman", FontSize - 5);
                    (Owner as Form1).ZakazdataGrid.AlternatingRowsDefaultCellStyle.BackColor = Color.PowderBlue;
                    (Owner as Form1).ZakazdataGrid.RowsDefaultCellStyle.BackColor = Color.LightSkyBlue;
                }

    Отсюда: http://sql.ru/forum/actualthread.aspx?tid=688754
    :-)

    VMcL, 21 Августа 2009

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

    +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
    $query="SHOW COLUMNS FROM ".$table;
    $result_field=mysql_query($query);
    $num_field=mysql_num_rows($result_field);
    
    for ($i = 0; $i<$num_field; $i++)
    {
        $row=mysql_fetch_array($result_field);
        $field_array[$i]=$row[0];
    }
    
    foreach ($field_array as $field)
        $select_field.=$field.',';
    
    $select_field=substr($select_field,0,-1);
    
    $query='select '.$select_field.' from '.$table;
    ...

    Аналог $query='select * from '.$table;

    porten, 20 Августа 2009

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

    +149

    1. 1
    $from = isset($_POST[$query[0]])? $_POST[$query[0]] : isset($_GET[$query])? $_GET[$query[0]]: null;

    Выдавил

    azzz, 20 Августа 2009

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

    +28

    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
    COMMAND command;
    BUFFER Buffer1;
    BUFFER Buffer2;
    ...
    byte NetSend(byte*& data, int& size)
    {
    	byte fErr = NO_ERRORS;
    	char* const Data = (char* const)data;
    
    	if(Data != 0)
    	{
    		if(Data[0] != 0)
    		{
    			Buffer1.writeData(Data,size,NULL);
    			command='Send';
    			byte fErr=net.sendCommand(command,Buffer1);
    		}
    		else 
    		{
    			Buffer2.writeData(Data,size,NULL);
    			command='SendFast';
    			byte fErr=net.sendCommand(command,Buffer2);
    		};
    	}
    	else
    	{
    		byte fErr=SEND_PARAM_ERROR;
    	}
    	
    	return fErr;
    };

    Зачем же автор завёл два Buffer? :D

    Говногость, 19 Августа 2009

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