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

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

    +149

    1. 1
    $txt['aeva_gallery'] = isset($txt['aeva_gallery']) ? $txt['aeva_gallery'] : 'Media';

    Кусочек языкового файла модуля медиагалереи

    prodigy, 27 Марта 2011

    Комментарии (12)
  3. bash / Говнокод #6070

    −126

    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
    #!/bin/bash
    
    sed -e 's/й/y/g' -i $1
    sed -e 's/ц/c/g' -i $1
    sed -e 's/у/u/g' -i $1
    sed -e 's/к/k/g' -i $1
    sed -e 's/е/e/g' -i $1
    sed -e 's/н/n/g' -i $1
    sed -e 's/г/g/g' -i $1
    sed -e 's/ш/sh/g' -i $1
    sed -e 's/щ/sch/g' -i $1
    sed -e 's/з/z/g' -i $1
    sed -e 's/х/h/g' -i $1
    sed -e 's/ф/f/g' -i $1
    sed -e 's/ы/i/g' -i $1
    sed -e 's/в/v/g' -i $1
    sed -e 's/а/a/g' -i $1
    sed -e 's/п/p/g' -i $1
    sed -e 's/р/r/g' -i $1
    sed -e 's/о/o/g' -i $1
    sed -e 's/л/l/g' -i $1
    sed -e 's/д/d/g' -i $1
    sed -e 's/ж/j/g' -i $1
    sed -e 's/э/e/g' -i $1
    sed -e 's/я/ya/g' -i $1
    sed -e 's/ч/ch/g' -i $1
    sed -e 's/с/s/g' -i $1
    sed -e 's/м/m/g' -i $1
    sed -e 's/и/i/g' -i $1
    sed -e 's/т/t/g' -i $1
    sed -e 's/б/b/g' -i $1
    sed -e 's/ю/yu/g' -i $1

    Перевод в английские буквы

    AliceGoth, 23 Марта 2011

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

    +134

    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
    /// <summary>
            /// попытка парсинга потока в bool {true,false,1,0} поддерживатеся любой регистр 
            /// </summary>
            /// <param name="lpwcstr">указатель текущую позицию потока</param>
            /// <param name="result">результат</param>
            /// <returns>см. ParseSucces</returns>
            static public ParseSuccess TryParse(ref char* lpwcstr, out bool result)
            {
                char* cur = lpwcstr;
            to_begin:
                switch (*cur++)
                {
                    case ' ':
                    case '\t':
                    case '\n':
                    case '\r':goto to_begin;
                    case '0': lpwcstr = cur; goto to_fail;
                    case '1': lpwcstr = cur; result = true; return ParseSuccess.Success;
                    case 't':
                    case 'T':
                        switch (*cur++)
                        {
                            case 'r':
                            case 'R': switch (*cur++)
                                {
                                    case 'u':
                                    case 'U': switch (*cur++)
                                        {
                                            case 'e':
                                            case 'E': lpwcstr = cur; result = true; return ParseSuccess.Success;
                                            default: result = false; return (ParseSuccess)(lpwcstr - cur + 1);
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    case 'f':
                    case 'F': switch (*cur++)
                        {
                            case 'a':
                            case 'A': switch (*cur++)
                                {
                                    case 'l':
                                    case 'L': switch (*cur++)
                                        {
                                            case 's':
                                            case 'S': switch (*cur++)
                                                {
                                                    case 'e':
                                                    case 'E': lpwcstr = cur; result = false; return ParseSuccess.Success;
                                                    default: goto to_fail;
                                                }
                                            default: goto to_fail;
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    default: goto to_fail;
                }
            to_fail:
                result = false; 
                return (ParseSuccess)(lpwcstr - cur + 1);
            }

    FMB, 23 Марта 2011

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

    +128

    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
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                int x = Convert.ToInt32(comboBox1.Text);
                switch (x)
                {
                    case  2: textBox1.Visible=true;
                        textBox2.Visible = true;
                        textBox3.Visible = false;
                        textBox4.Visible = false;
                        textBox5.Visible = false;
                        textBox6.Visible = false;
                        textBox7.Visible = false;
                        textBox8.Visible = false;
                        textBox9.Visible = false;
                        textBox10.Visible = false;
                        break;
                    case 3:
                        textBox1.Visible = true;
                        textBox2.Visible = true;
                        textBox3.Visible = true;
                        textBox4.Visible = false;
                        textBox5.Visible = false;
                        textBox6.Visible = false;
                        textBox7.Visible = false;
                        textBox8.Visible = false;
                        textBox9.Visible = false;
                        textBox10.Visible = false;
                        break;
    
    //и так до 10
    //...
    
            private void button1_Click(object sender, EventArgs e)
            {
                double p1 = 1 / Convert.ToDouble(textBox1.Text);
                double p2 = 1 / Convert.ToDouble(textBox2.Text);
                double p3 = 1 / Convert.ToDouble(textBox3.Text);
                double p4 = 1 / Convert.ToDouble(textBox4.Text);
                double p5 = 1 / Convert.ToDouble(textBox5.Text);
                double p6 = 1 / Convert.ToDouble(textBox6.Text);
                double p7 = 1 / Convert.ToDouble(textBox7.Text);
                double p8 = 1 / Convert.ToDouble(textBox8.Text);
                double p9 = 1 / Convert.ToDouble(textBox9.Text);
                double p10 = 1 / Convert.ToDouble(textBox10.Text);
                double inv;
                
                
                int x = Convert.ToInt32(comboBox1.Text);
                switch (x)
                {
                    case 2:
                        inv=(1/p1+1/p2);
                        break;
                    case 3:
                        inv = ((1 / p1) + (1 / p2)+(1/p3));
                        break;
                    case 4:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3)+(1/p4));
                        break;
                    case 5:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4)+(1/p5));
                        break;
                    case 6:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5)+(1/p6));
                        break;
                    case 7:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7));
                        break;
                    case 8:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8));
                        break;
                    case 9:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8) + (1 / p9));
                        break;
                    case 10:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8) + (1 / p9) + (1 / p10));
                        break;
     
                        double rez = 1 / inv;
                        textBox11.Text = Convert.ToString(rez);
                }
            }

    FMB, 16 Марта 2011

    Комментарии (12)
  6. Java / Говнокод #6007

    +75

    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
    private void configComponents(/* params */) throws MyException {
    	String err_msg = null;
    	try {
    		// some code here...
    		return;
    	} catch (ComponentConfigurationException e) {
    		err_msg = e.getMessage();
    	} catch (MyException e) {
    		err_msg = e.getMessage();
    	} catch (Exception e) {
    		err_msg = setupProcessErrorMessage;
    	}
    	throw new MyException(err_msg);
    }

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

    mdcool, 16 Марта 2011

    Комментарии (12)
  7. PHP / Говнокод #5918

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach ($_REQUEST as $key => $value)
    		{
    			if (substr($key, 0, strlen("ORDER_PROP_"))=="ORDER_PROP_")
    				$arPropValsTmp[$key] = htmlspecialchars($value);
    		}

    Забавная проверка.. Из битрикса.

    revis0r, 07 Марта 2011

    Комментарии (12)
  8. PHP / Говнокод #5893

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function &_extract(&$array, $path) {
      $element = &$array;
      while(count($path)) {
        $key = array_shift($path);
        $element = &$element[$key];
      }
    
      return $element;
    }

    vectoroc, 05 Марта 2011

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

    +96

    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
    procedure TForm1.RegHttpRedirect(Sender: TObject; var dest: String;
      var NumRedirect: Integer; var Handled: Boolean;
      var VMethod: TIdHTTPMethod);
    begin
    Log('Redirect № ' + IntToStr(NumRedirect)+ ' - '+ Dest ,  true, MainClr);
    end;
    
    procedure TForm1.HTTPCoreStatus(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    begin
    Log('Статус: '+ AStatusText, true, MainClr);
    end;
    
    {procedure TForm1.RegHttpW0rk(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    begin
    
    end;}

    лошарский код

    megaruliz, 28 Февраля 2011

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

    +147

    1. 1
    2. 2
    3. 3
    if ($result and mysql_num_rows($result) > 0) {
       /*здесь код*/
    }

    бля..... ну это же php...

    Sulik78, 28 Февраля 2011

    Комментарии (12)
  11. Pascal / Говнокод #5805

    +85

    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
    // ComPort1: TComPort; компонент для работы RS-232
    type
     Tst5=string[5];
    var
      Form1: TForm1;
      lastcnl:byte;
      CommonShiftTT:integer;
      roundtt:integer;
      Start_Proces:boolean;
      intN,intdg0,intdg50:integer;
      cerr,cerr0,cerr50:integer;
      intdg:integer;
      cnl:integer;
      b:array [1..5]of byte;
      s,sdg50,sdg0,ss:Tst5;
      tt,realdg:real;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.ComPort1RxBuf(Sender: TObject; const Buffer;
      Count: Integer);
    var
      i:integer;
      p:pointer;
    begin
     for i:=1 to 5 do b[i]:=0;
     ListBox1.Items.clear;
     if ComPort1.Connected then begin
        p:=@Buffer;
        b[1]:=byte(p^);
      end
      else begin
        exit;
      end;
      cnl:=b[1];
      if cnl=0 then begin
        Start_Proces:=true;
      end;
      ListBox1.Items.Add(inttostr(cnl));
      if Start_Proces=true then begin
        b[2]:=Byte(pointer(longint(p)+1)^);
        b[3]:=Byte(pointer(longint(p)+2)^);
        b[4]:=Byte(pointer(longint(p)+3)^);
        b[5]:=Byte(pointer(longint(p)+4)^);
    
        if (b[2] and $20)>0 then ss[1]:='+' else ss[1]:='-';
        if (b[2] and $40)>0 then ss[2]:='0' else ss[2]:='1';
    
        FOR i:=3 TO 5 DO begin
        case b[i] of
              $82:ss[i]:='0';
              $CF:ss[i]:='1';
              $A4:ss[i]:='2';
              $85:ss[i]:='3';
              $C9:ss[i]:='4';
              $91:ss[i]:='5';
              $90:ss[i]:='6';
              $C7:ss[i]:='7';
         {min}$80:ss[i]:='8';
              $81:ss[i]:='9';
              $FF:ss[i]:='x'
            else ss[i]:=chr(b[i]);
        end;
        ss[0]:=#5;
    
        case cnl of
          0:begin
            vaL(ss,intdg0,cerr0);
            stR(intdg0,sdg0);
            Label1.Caption:=inttostr(intdg0);
          end;
          1:begin
            vaL(ss,intdg50,cerr50);
            stR(intdg50,sdg50);
            Label2.Caption:=inttostr(intdg50);
          end;
          2..26:begin
            vaL(ss,intN,cerr);
            intN:=intN-intdg0+CommonShiftTT;
            realdg:=intN/((intdg50-intdg0)/500);{real type}
            intdg:=SMALLINT(round(realdg));{integer type}
            tt:=intdg/10;
            roundtt:=SMALLINT(round(tt));{integer}
            stR(roundtt:5,s);
          end;
        end;
      end;
      ListBox1.Items.Add('float='+floattostr(tt));
      ListBox1.Items.Add(inttostr(cnl)+'='+ss+' = '+inttostr(roundtt));
     end;
    end;

    Процедура приема и обработки Кодов АЦП с контроллера. Контроллер обрабатывает данные полученные с температурных (аналоговых) датчиков и передает на COM в цифровом виде.
    Сделано для АКГУП Индустриальный г. Барнаул

    zak, 25 Февраля 2011

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