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

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function THero.getMinimalJsonData():SOString;
    begin
      Result := '{"username":"'+name+
                  '","userid":'+IntToStr(id)+
                  ',"level":'+IntToStr(general.level)+
                  ',"creditstate":'+IntToStr(TTransfer.calcCreditState(general.creditPoints,general.level,general.creditFine))+
                  ',"sign":"'+addiction.GetS('sign')+'"}';
    end;

    Использовать готовый класс? Не только в строку руками, только хардкор.

    Cynicrus, 05 Апреля 2015

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (CurrentPlugin=nil) and (CurrentPlugin.FileName<>'InfoRTF.dll') and (CurrentPLugin.FileName<>'Preview.dll')  then begin
        if not ServerStoped then begin
            uPluginControl.StopSession();
        end;
        if ClientLoaded then begin
            ClientLoaded:=false;
            StartDemo();
        end;
    end;

    Смеяться на первой же строчке.
    Привет Алексу.

    hdkeeper, 17 Октября 2014

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

    +93

    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
    99. 99
    begin
    if n=15 then
    begin
    a:=7200*56*99*12*13*14*15;
    end
    else
    begin
    if n=16 then
    begin
    a:=7200*56*99*12*13*14*15*16;
    end
    else
    begin
    if n=17 then
    begin
    a:=7200*56*99*12*13*14*15*16*17;
    end
    else
    begin
    if n=18 then
    begin
    a:=7200*56*99*12*13*14*15*16*17*18;
    end
    else
    begin
    if n=19 then
    begin
    a:=7200*56*99*12*13*14*15*16*17*18*19;
    end
    else
    begin
    if n=20 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19;
    end
    else
    begin
    if n=21 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21;
    end
    else
    begin
    if n=22 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22;
    end
    else
    begin
    if n=23 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23;
    end
    else
    begin
    if n=24 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24;
    end
    else
    begin
    if n=25 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25;
    end
    else
    begin
    if n=26 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25*26;
    end
    else
    begin
    if n=27 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25*26*27;
    end
    else
    begin
    if n=28 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25*26*27*28;
    end
    else
    begin
    if n=29 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25*26*27*28*29;
    end
    else
    begin
    if n=30 then
    begin
    a:=144000*56*99*12*13*14*15*16*17*18*19*21*22*23*24*25*26*27*28*29*30;
    end
    else
    begin
    if n=31 then
    begin

    crazy_horse, 25 Февраля 2013

    Комментарии (24)
  5. Pascal / Говнокод #12602

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    s := '  .  ';
    IF fGamma >= 1000 THEN s[1] := CHR (ORD ('0') + fGamma DIV 1000);
    s[2] := CHR (ORD ('0') + fGamma DIV 100 MOD 10);
    s[4] := CHR (ORD ('0') + fGamma DIV 10 MOD 10);
    s[5] := CHR (ORD ('0') + fGamma MOD 10);

    Перевод числа в строку.
    Из исходников Photoshop 1.0.1
    http://bit.ly/W11p5e
    Там на первый взгляд хватает копипасты. Но особо не углублялся.

    absolut, 16 Февраля 2013

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Float nan=Float.NaN;
    new Float(10).compareTo(nan);
    //-1
    nan.compareTo(nan);
    //0
    new Float(Float.POSITIVE_INFINITY).compareTo(nan);
    //-1. POSITIVE_INFINITY<NAN. LoL

    http://ideone.com/9WIo16
    Тут некоторые товарищи в соседнем треде предлагали сравнивать объекты через compareTo()==0, если возможно.
    Ну и беречься от equals как от огня, если есть Comparable.
    А вот к чему это приводит.

    3.14159265, 13 Ноября 2012

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

    +93

    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
    package java.util.logging;
    public class XMLFormatter extends Formatter 
    {
        // Append a two digit number.
        private void a2(StringBuffer sb, int x) {
    	if (x < 10) {
    	    sb.append('0');
    	}
    	sb.append(x);
        }
        // Append the time and date in ISO 8601 format
        private void appendISO8601(StringBuffer sb, long millis) {
    	Date date = new Date(millis);
    	sb.append(date.getYear() + 1900);
    	sb.append('-');
    	a2(sb, date.getMonth() + 1);
    	sb.append('-');
    	a2(sb, date.getDate());
    	sb.append('T');
    	a2(sb, date.getHours());
    	sb.append(':');
    	a2(sb, date.getMinutes());
    	sb.append(':');
    	a2(sb, date.getSeconds());
        }
        private void escape(StringBuffer sb, String text) {
    	if (text == null) {
    	    text = "<null>";
    	}
    	for (int i = 0; i < text.length(); i++) {
    	    char ch = text.charAt(i);
    	    if (ch == '<') {
    		sb.append("<");
    	    } else if (ch == '>') {
    		sb.append(">");
    	    } else if (ch == '&') {
    		sb.append("&");
    	    } else {
    		sb.append(ch);
    	    }
    	}
        }
        public String format(LogRecord record) {
    	StringBuffer sb = new StringBuffer(500);
    	sb.append("<record>\n");
    
    	sb.append("  <date>");
    	appendISO8601(sb, record.getMillis());
    	sb.append("</date>\n");
    
    	sb.append("  <millis>");
    	sb.append(record.getMillis());
    	sb.append("</millis>\n");
    
    	sb.append("  <sequence>");
    	sb.append(record.getSequenceNumber());
    	sb.append("</sequence>\n");
    
    	String name = record.getLoggerName();
    	if (name != null) {
    	    sb.append("  <logger>");
    	    escape(sb, name);
    	    sb.append("</logger>\n");
    	}
    
    	sb.append("  <level>"); 
    	escape(sb, record.getLevel().toString());
    	sb.append("</level>\n");
    
    	if (record.getSourceClassName() != null) {
    	    sb.append("  <class>");
    	    escape(sb, record.getSourceClassName());
    	    sb.append("</class>\n");
    	}
    
    	if (record.getSourceMethodName() != null) {
    	    sb.append("  <method>");
    	    escape(sb, record.getSourceMethodName());
    	    sb.append("</method>\n");
    	}
    
    	sb.append("  <thread>");
    	sb.append(record.getThreadID());
    	sb.append("</thread>\n");
     ....

    Я конечно всё понимаю, неоднократно были ситуации когда для скорости сам собирал xml руками.
    Но тут и вовсе такое ощущение будто школьник писал.
    http://kickjava.com/src/java/util/logging/XMLFormatter.java.htm

    3.14159265, 15 Октября 2012

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (int i = 0; i < wastePeriods.Length; i++)
        {
              wastePeriods = 0;
              docPeriods = 0;
              wastePeriodsYear = 0;
        }

    Диггеры-рефакторщики раскопали очередной оригинальный цикл.
    wastePeriods - массив с over300+ записями.
    docPeriods, wastePeriodsYear - тоже массивы

    UfoDriver, 22 Мая 2012

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

    +93

    1. 1
    if (indSpec == false || indZone == false || (FRof != null && FRof == 2)) result = 1;

    Нашли в проекте вот такое "женское" условие. Видимо, префиксом "ind" автор намекала на своё происхождение.

    DukeGonzo, 15 Мая 2012

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    //|| Request.Params["lbActCat"].Equals("0,0") Ваня, понятия не имею почему приходит значение 0,0, но это вызывает ошибку
    if (Request.QueryString["lbActCat"] != null && !Request.QueryString["lbActCat"].Equals("0,0")) {
        lbActCat.SelectedValue = Request.QueryString["lbActCat"];
    }

    а раз вызывает ошибку, просто вставим в if еще одно условие и нет ошибки, Ваня...

    sergey_sh, 14 Мая 2012

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

    +93

    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
    private void Form1_Load(object sender, EventArgs e)
            {
                    this.пользователиTableAdapter.Fill(this.пользователиDataSet.Пользователи);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                string a1 = textBox1.Text;
                string a2 = a1 + ";" + textBox2.Text;
    
                int d = dataGridView1.ColumnCount-1;
                int d1 = dataGridView1.RowCount-1;
    
                for (int i = 0; i < d1; i++)
                {
                    for (int j = 0; j < d; j++)
                    {
                        if (a2 == ";")
                        {
                            MessageBox.Show("Введите логин и пароль");
                            d = 0;
                            d1 = 0;
                            break;
                        }
    
                        if (a2 == dataGridView1.Rows[i].Cells[0].Value.ToString())
                        {
                            int r1 = i;
                            int r2 = j;
    
                            string r11 = dataGridView1.Rows[r1].Cells[r2 + 1].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 2].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 3].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 4].Value.ToString();
    
                            if (r11 == "++--")
                            {
                                Hide();
                                Form2 f2 = new Form2();
                                f2.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
    
                            if (r11 == "--++")
                            {
                                Hide();
                                Form3 f3 = new Form3();
                                f3.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
    
                            if (r11 == "--+-")
                            {
                                Hide();
                                Form4 f4 = new Form4();
                                f4.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
                        }
    
                        int d11 = d1-1;
                        int dd = d-1;
    
                        if (j == dd && i == d11)
                        {
                            MessageBox.Show("Логин или пароль отсутствует в базе данных");
                        }
                    }
                        }
                    }      
                }
            }

    http://www.youtube.com/watch?v=MNQb-uxneYs

    lowercase, 10 Мая 2012

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