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

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

    −130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #!/bin/bash
    
    curl http://www.radioroks.com.ua/online.php | grep '<b>' > /tmp/roks
    
    sed -e 's/<[^>]*>//g' /tmp/roks > /tmp/roks2
    sed -e 's/&middot;/- /g' /tmp/roks2 > /tmp/roks
    sed -e 's/\t//g' /tmp/roks > /tmp/roks2
    
    sed -e 's/\:-/\:\
    -/g' /tmp/roks2 > /tmp/roks
    
    cat /tmp/roks | head -n $1

    Кажется, писал под утро. Не вдуплился юзать только 1 файл, а жонглировал /tmp/roks и /tmp/roks2 ...

    Anderson, 14 Мая 2010

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

    +165

    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
    //--------------- Функция подсчета карт в игре ---------------//
    function cards_score($str){
    if($str==1||$str==2||$str==3||$str==4){
    $num = 6;
    }
    if($str==5||$str==6||$str==7||$str==8){
    $num = 7;
    }
    if($str==9||$str==10||$str==11||$str==12){
    $num = 8;
    }                
    if($str==13||$str==14||$str==15||$str==16){
    $num = 9;
    }                
    if($str==17||$str==18||$str==19||$str==20){
    $num = 10;
    }                
    if($str==21||$str==22||$str==23||$str==24){
    $num = 2;
    }                
    if($str==25||$str==26||$str==27||$str==28){
    $num = 3;
    }                      
    if($str==29||$str==30||$str==31||$str==32){
    $num = 4;
    }                      
    if($str==33||$str==34||$str==35||$str==36){
    $num = 11;
    }                      
    return $num;
    }
    
    
    //--------------- Функция подсчета очков в игре ---------------//
    function cards_points($str){
    $str=(int)$str;    
    $points = ' очков';
    if($str==2||$str==3||$str==4||$str==22||$str==23||$str==24|$str==32||$str==33||$str==34){$points = ' очка';}
    if($str==21){$points = ' <b>очко!!!</b>';}
    if($str==31){$points = ' очко';}
    return $str.$points;
    } 
    
    //--------------- Функция вывода статуса ---------------//
    function user_ststuses($balls) {
    
    $text = file_get_contents(DATADIR."status.dat"); 
    if ($text!=""){
    $udta = explode("|",$text);}
    if($balls>=0 && $balls<5){$statuses=$udta[0];}
    if($balls>=5 && $balls<10){$statuses=$udta[1];}    
    if($balls>=10 && $balls<20){$statuses=$udta[2];}
    if($balls>=20 && $balls<50){$statuses=$udta[3];}
    if($balls>=50 && $balls<100){$statuses=$udta[4];}
    if($balls>=100 && $balls<250){$statuses=$udta[5];}    
    if($balls>=250 && $balls<500){$statuses=$udta[6];}
    if($balls>=500 && $balls<750){$statuses=$udta[7];}
    if($balls>=750 && $balls<1000){$statuses=$udta[8];}
    if($balls>=1000 && $balls<1250){$statuses=$udta[9];}
    if($balls>=1250 && $balls<1500){$statuses=$udta[10];}
    if($balls>=1500 && $balls<1750){$statuses=$udta[11];}
    if($balls>=1750 && $balls<2000){$statuses=$udta[12];}
    if($balls>=2000 && $balls<2250){$statuses=$udta[13];}
    if($balls>=2250 && $balls<2500){$statuses=$udta[14];}
    if($balls>=2500 && $balls<2750){$statuses=$udta[15];}
    if($balls>=2750 && $balls<3000){$statuses=$udta[16];}
    if($balls>=3000 && $balls<3250){$statuses=$udta[17];}
    if($balls>=3250 && $balls<3499){$statuses=$udta[18];}
    if($balls>=3500 && $balls<4999){$statuses=$udta[19];}
    if($balls>=5000 && $balls<7499){$statuses=$udta[20];}
    if($balls>=7500 && $balls<9999){$statuses=$udta[21];}
    if($balls>=10000){$statuses=$udta[22];}
    $statuses=check($statuses);
    
    return $statuses;
    }

    3 сорца отсюда http://visavi.net/load/zip.php?act=preview&id=988&view=854&star t=840&

    This is obvious, 07 Мая 2010

    Комментарии (10)
  4. Pascal / Говнокод #3163

    +98

    1. 1
    dmauto.tout.FieldByName('nomer').AsString:=       inttostr(inc(strtoint(dmauto.tout.FieldByName('nomer').AsString)));

    max4d, 05 Мая 2010

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

    −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
    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
    ''' <summary>
    	''' Функция взятия запроса как инструкции t/sql; рекордсет возвращается в виде oZap(,).
    	''' </summary>
    	''' <param name="eConnectString">Строка подключения к БД из списка.</param>
    	''' <param name="sText">Инструкция t/sql.</param>
    	''' <param name="oErr">Необязательная ошибка.</param>
    	''' <param name="oZap">Необязательный двумерный массив, содержащий рекордсет ― 1-ю таблицу датасета.</param>
    	''' <param name="iTimeout">Необязательное число секунд таймаута запроса.</param>
    	''' <returns>Число затронутых строк в таблице БД; если ноль, то нормально ещё, а если -1, то запрос не прошёл, если -2, то соединение не установилось.</returns>
    	''' <remarks>
    	''' </remarks>
    	''' <history>
    	''' 	[Max Pro]	11.04.2007	Created
    	''' 	[Max Pro]	08.08.2008	Реабилитировал OleDb.
    	''' 	[Max Pro]	08.04.2009	Оптимизировал как надо ReDim Preserve и переполнение Integer.
    	''' 	[Max Pro]	27.08.2009	Исправил ошибку ReDim Preserve ― было больше на 1 элемент.
    	''' </history>
    	''' -----------------------------------------------------------------------------
    	Public Function iZap(ByVal eConnectString As ConnectString, ByVal sText As String, Optional ByRef oErr As Exception = Nothing, Optional ByRef oZap(,) As Object = Nothing, Optional ByVal iTimeout As Integer = -1) As Integer
    		'#region "var"
    		Dim iX As Integer
    		Dim lY As Long
    		Dim lYTemp As Long
    		Dim i As Integer
    		Dim iZapTemp As Integer
    		'var zap
    		Dim sConnectString As String = sConStrFromEnum(eConnectString)
    		Dim oConnection
    		Dim oCommand
    		Dim oReader
    		'#end region 'var
    		'#region ini
    		If sConnectString Like "*sqloledb*" Then
    			oConnection = New OleDbConnection
    			oCommand = New OleDbCommand
    		Else
    			oConnection = New SqlConnection
    			oCommand = New SqlCommand
    		End If
    		'#end region 'ini
    		iZap = -2
    		oErr = New Exception
    		oConnection.ConnectionString = sConnectString
    		Try
    			'попытка открытия соединения
    			oConnection.Open()
    			If oConnection.State Then iZap = -1 'if <>0
    			'присвоение параметров команды
    			If iTimeout >= 0 Then oCommand.CommandTimeout = iTimeout
    			oCommand.CommandType = CommandType.Text
    			oCommand.Connection = oConnection
    			oCommand.CommandText = sText
    			'попытка выполнения команды
    			oReader = oCommand.ExecuteReader()
    			iZap = 0
    			iX = oReader.FieldCount - 1
    			lY = -1
    			lYTemp = 255
    			ReDim oZap(iX, lYTemp)
    			While oReader.Read()
    				lY += 1
    				If lY < Integer.MaxValue Then				 '2 147 483 647-1(заменил <= на < чтобы число элементов iZap не зашкалило).
    					iZapTemp = lY + 1
    					If lY > lYTemp Then
    						lYTemp += 256
    						ReDim Preserve oZap(iX, lYTemp)
    					End If
    					For i = 0 To iX
    						If IsDBNull(oReader(i)) Then oZap(i, lY) = Nothing Else oZap(i, lY) = oReader(i)
    					Next i
    				End If
    			End While
    			oReader.Close()
    			oReader = Nothing
    			oCommand = Nothing
    			iZap = iZapTemp
    			ReDim Preserve oZap(iX, iZapTemp - 1)
    			If lY >= Integer.MaxValue Then
    				oErr = New Exception(lY.ToString("# ##0") & " строк >=" & Integer.MaxValue & " (Integer.MaxValue), но массив заполнен до предела Int32 и iZap=Integer.MaxValue.")
    			End If
    		Catch oError As Exception
    			oErr = oError
    		Finally
    			If IsNothing(oConnection) = False Then
    				oConnection.Close()
    				oConnection = Nothing
    			End If
    		End Try
    	End Function	  'iZap

    А так Максим Прохоров выполняет запросы. слабо?

    ursus, 23 Апреля 2010

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

    +908

    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
    template <typename Handler>
      void start_connect_op(socket_type descriptor,
          per_descriptor_data&, Handler handler)
      {
        boost::asio::detail::mutex::scoped_lock lock(mutex_);
        if (!shutdown_)
        {
          boost::shared_ptr<bool> completed(new bool(false));
          connect_handler_wrapper<Handler> wrapped_handler(
              descriptor, completed, *this, handler);
          bool interrupt = write_op_queue_.enqueue_operation(
              descriptor, wrapped_handler);
          interrupt = except_op_queue_.enqueue_operation(
              descriptor, wrapped_handler) || interrupt;
          if (interrupt)
            interrupter_.interrupt();
        }
      }

    Как дико зафрагментировать кучу?!
    Столько хороших идей и так много говнокода в реализации.
    //boost::shared_ptr<bool> completed(new bool(false)); - это один из шедевров кривокодирования!!!

    mock, 22 Апреля 2010

    Комментарии (10)
  7. Java / Говнокод #3070

    +84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public void setPhones(List<PhoneNumber> phones) throws Exception {
        this.phones = phones;
        this.phones.clear();
        this.phones.addAll(phones);
    }

    Вот такой метод нашёл сегодня в коде.

    asolntsev, 21 Апреля 2010

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

    +57.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
    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
    t1->addAnimation(new QPropertyAnimation(widget, "geometry"));
        t1->addAnimation(new QPropertyAnimation(p1, "pos"));
        t1->addAnimation(new QPropertyAnimation(p2, "pos"));
        t1->addAnimation(new QPropertyAnimation(p3, "pos"));
        t1->addAnimation(new QPropertyAnimation(p4, "pos"));
        t1->addAnimation(new QPropertyAnimation(p5, "pos"));
        t1->addAnimation(new QPropertyAnimation(p6, "pos"));
        t1->addAnimation(new QPropertyAnimation(p1, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p2, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p3, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p4, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p5, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p6, "rotation"));
        t1->addAnimation(new QPropertyAnimation(p1, "opacity"));
        t1->addAnimation(new QPropertyAnimation(p2, "opacity"));
        t1->addAnimation(new QPropertyAnimation(p3, "opacity"));
        t1->addAnimation(new QPropertyAnimation(p4, "opacity"));
        t1->addAnimation(new QPropertyAnimation(p5, "opacity"));
        t1->addAnimation(new QPropertyAnimation(p6, "opacity"));
    
        QAbstractTransition *t2 = state2->addTransition(button, SIGNAL(clicked()), state3);
        t2->addAnimation(new QPropertyAnimation(box, "geometry"));
        t2->addAnimation(new QPropertyAnimation(widget, "geometry"));
        t2->addAnimation(new QPropertyAnimation(p1, "pos"));
        t2->addAnimation(new QPropertyAnimation(p2, "pos"));
        t2->addAnimation(new QPropertyAnimation(p3, "pos"));
        t2->addAnimation(new QPropertyAnimation(p4, "pos"));
        t2->addAnimation(new QPropertyAnimation(p5, "pos"));
        t2->addAnimation(new QPropertyAnimation(p6, "pos"));
        t2->addAnimation(new QPropertyAnimation(p1, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p2, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p3, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p4, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p5, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p6, "rotation"));
        t2->addAnimation(new QPropertyAnimation(p1, "opacity"));
        t2->addAnimation(new QPropertyAnimation(p2, "opacity"));
        t2->addAnimation(new QPropertyAnimation(p3, "opacity"));
        t2->addAnimation(new QPropertyAnimation(p4, "opacity"));
        t2->addAnimation(new QPropertyAnimation(p5, "opacity"));
        t2->addAnimation(new QPropertyAnimation(p6, "opacity"));
    
        QAbstractTransition *t3 = state3->addTransition(button, SIGNAL(clicked()), state1);
        t3->addAnimation(new QPropertyAnimation(box, "geometry"));
        t3->addAnimation(new QPropertyAnimation(widget, "geometry"));
        t3->addAnimation(new QPropertyAnimation(p1, "pos"));
        t3->addAnimation(new QPropertyAnimation(p2, "pos"));
        t3->addAnimation(new QPropertyAnimation(p3, "pos"));
        t3->addAnimation(new QPropertyAnimation(p4, "pos"));
        t3->addAnimation(new QPropertyAnimation(p5, "pos"));
        t3->addAnimation(new QPropertyAnimation(p6, "pos"));
        t3->addAnimation(new QPropertyAnimation(p1, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p2, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p3, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p4, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p5, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p6, "rotation"));
        t3->addAnimation(new QPropertyAnimation(p1, "opacity"));
        t3->addAnimation(new QPropertyAnimation(p2, "opacity"));
        t3->addAnimation(new QPropertyAnimation(p3, "opacity"));
        t3->addAnimation(new QPropertyAnimation(p4, "opacity"));
        t3->addAnimation(new QPropertyAnimation(p5, "opacity"));
        t3->addAnimation(new QPropertyAnimation(p6, "opacity"));

    http://qt.gitorious.org/qt/qt/blobs/4.7/examples/animation/states/main.cpp

    Пример использования Qt animation framework: образцовый быдлокод.

    Lockal, 19 Апреля 2010

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

    +143.8

    1. 1
    foreach ($invoises as $invoiceId => $invoice) {

    Вот так и работаем с инвойсами...

    DiSH, 16 Апреля 2010

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

    +126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    try
    {
         ....
         com.ExecuteNonQuery();
    }
    catch (Exception ex) { }
            finally
            {
                con.Close();
      }

    ASP.NET
    Вот так вот обрабатываем ошибки, за которые получаем ПИЗДЫ.
    Интересно а откуда ж нам об них узнатьтаа :)))

    otvet_popravkodon, 13 Апреля 2010

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

    +121.8

    1. 1
    int lvl = Convert.ToInt32(reader[0].ToString());

    ASP.NET
    Из текста это получается лучше сделать
    reader = SqlDataReader

    otvet_popravkodon, 13 Апреля 2010

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