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

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

    +87

    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
    float Chislo(char *a, int i)
      {
       int j=i;
       int k=0;
       int r;
       float chis=0;
       while (a[j-1]!=' ' && a[j-1]!='>' && a[j-1]!='-' && a[j-1]!='+' && a[j-1]!='(')
         {j--;
                 //тут перегоняем символ a[j] в цифру r
          if (int(a[j]==48)) r=0;
           else if (int(a[j]==49)) r=1;
            else if (int(a[j]==50)) r=2;
             else if (int(a[j]==51)) r=3;
              else if (int(a[j]==52)) r=4;
               else if (int(a[j]==53)) r=5;
                else if (int(a[j]==54)) r=6;
                 else if (int(a[j]==55)) r=7;
                  else if (int(a[j]==56)) r=8;
                   else if (int(a[j]==57)) r=9;
                     else goto lab8;
          //ShowMessage(a[j]);
    
          chis=chis + r*pow(10,k);
          k++;
         };
       //j--;            //дальше надо обратно до точки и дольше до пробела
       while (a[j]!='.')
         {if (a[j]==' ' || a[j]==':') goto lab8;
          j++;
         };
       j++;
       r=0;
       k=-1;
       
          k--;
          j++;
         };
    
       lab8:
    
       return chis;
      }
    
    // была еще и похощая функция возвращающая результат в виде AnsiString
    
    // вот сколько переменных понадобивлось автору в более чем 700-строчной процедуре
    
    void Progon()
    {
     //
      AnsiString TempR1, TempR2, TempR3, Com,Sport,Team1,Team2, Team, URL1, URL2, page,Champ,Date;
      AnsiString day, month, year, Res, temp, otdyh1, otdyh2;
      int dat;
      //TempR1 = NMHTTP1->Body;
    
       float tot,TM,TB,bol1,bol2,srbol,ver,value,proc;
       AnsiString totS,f1S,ind1S,ind2S, f1ch1S, t_ch1S, f1ch2S, t_ch2S, f1ch3S, t_ch3S, f1ch4S, t_ch4S;
       float fora1,ind1,ind2, f1ch1, t_ch1, f1ch2, t_ch2, f1ch3, t_ch3, f1ch4, t_ch4;
       AnsiString Score1, Score2, s1ch1S, s2ch1S, s1ch2S, s2ch2S, s1ch3S, s2ch3S, s1ch4S, s2ch4S;
    
       AnsiString FIO, ScoreS, RebS, AstS, MinS, Amplua, BlkS, StlS;
       AnsiString TotalS, RebBookS, AstBookS, StlBookS, BlkBookS;
       float Total, RebBook, AstBook, BlkBook, StlBook;
       float PtssNRebsBook, PtssNAstsBook, RebsNAstsBook, PtssNRebsNAstsBook, Book3ptTeam1, Book3ptTeam2;
       int Score, count;
    
       int str1, str2, ind, indd, ig_pos;
       bool win;
    
    // В коде куча такого
    
     while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;       // // обошли stl
    
    int *Ptss;
      Ptss = new int[count];
    
      int *Rebs;
      Rebs = new int[count];
    
      int *Asts;
      Asts = new int[count];
    
      int *Blks;
    
    
    while ( ! ( ((bukva[i]=='H') &&(bukva[i+1]=='o') && (bukva[i+2]=='m') && (bukva[i+3]=='e')) || ((bukva[i]=='R') &&(bukva[i+1]=='o') && (bukva[i+2]=='a') && (bukva[i+3]=='d')))) i--;
             while (bukva[i]!='a') i--;
             while ((bukva[i-1]!='>') && (bukva[i-1]!=' ')) i--;
    
    // Внутри циклов всюду работа с экселем
     else
                                 {Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+14).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                  Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+15).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                 };

    Как -то по фрилансу заказчик хотел доработать то ли парсер, то ли еще что-то (по предоставленным исходникам я так и не смог понять что это за прога, названная "Автониггер" и написанная каким -то студентом толи специально ради выноса мозгов, то ли по еще каким-то причинам вышеобозначенными выкладками, которые вполне возможно содержат в себе какойто гипнотический смысл).

    fenryr, 29 Апреля 2010

    Комментарии (17)
  3. Java / Говнокод #2622

    +86.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
    ...
    String tmp = null;
    String age = null;
    ...
    tmp = hdrInfo.getAge();
    if( tmp != null )
    {
      age = tmp.substring( 0, tmp.length( ) - 1 );
      if( !age.equals( "0" ) ) {
        age = age;
      } else {
        age="";
      }
    } else {
      age="";
    }

    Индусско-выверенный код.

    Underdark, 16 Февраля 2010

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

    +86.6

    1. 1
    if Mode = True then

    из исходников FastReport

    StriderMan, 21 Декабря 2009

    Комментарии (66)
  5. Java / Говнокод #1917

    +86.6

    1. 1
    2. 2
    3. 3
    for (int j = 0; j < ch.length; j++) { 
    		ch[j] = "0".charAt (0); 
    }

    lian, 30 Сентября 2009

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

    +86.5

    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
    /**
     * константы платежей
     *
     * @author eav
     */
    public interface PaymentsConstants {
    	// какие-то цифры %)
    	static final String _25 = "25";
    	static final String _21 = "21";
    	static final String _27 = "27";
    	static final String _26 = "26";
    	static final String _93 = "93";
    	static final String _78 = "78";
    	static final String _80 = "80";
    	static final String _98 = "98";
    	static final String _81 = "81";
    	static final String _13 = "13";
    	static final String _12 = "12";
    	static final String _95 = "95";
    	static final String _20 = "20";
    	static final String _23 = "23";
    	static final String _53 = "53";
    	static final String _112 = "112";
    
    	static final String _270900 = "270900";
    	static final String _2710 = "2710";
    	static final String _2711210000 = "2711210000";
    	static final String _4907001010 = "4907001010";
    	static final String _4820409000 = "4820409000";
    	static final String _4907009000 = "4907009000";
    
    	// страны
    	static final String TM = "TM";
    	static final String AM = "AM";
    	static final String TJ = "TJ";
    	static final String UZ = "UZ";
    	static final String KG = "KG";
    	static final String AZ = "AZ";
    	static final String GE = "GE";
    	static final String UA = "UA";
    	static final String MD = "MD";
    	static final String BY = "BY";
    	static final String KZ = "KZ";
    
    	static final String ВРЕМ = "Врем";
    	static final String КОМП = "Комп";
    	static final String ДЕМП = "Демп";
    	static final String АКЦИЗ = "Акциз";
    
    	static final String УН = "УН";
    	static final String ИП = "ИП";
    
    	// импорт/экспорт
    	static final String ЭК = "ЭК";
    	static final String ИМ = "ИМ";
    }

    Тихий ужас...

    ctepx, 11 Ноября 2009

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

    +86.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //#ifdef Slowpoke
        private static final int MILLIS = 1100;
        //#else
        private static final int MILLIS = 1000;
        //#endif

    Сколько миллисекунд в секунде?

    thePooh, 17 Марта 2010

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

    +86.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    with (VirNode^) do
    begin
      VirNode^.ImageIndex := vir.iNum;
      VirNode^.Txt := vir.sAttr[1] + ' - ' + vir.sAttr[3];
    end;

    сначала было без with а потом забыл убрать "VirNode^." :)

    Joe, 15 Августа 2009

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

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private void Initialize() {
            try {
                saveCachPath = Files.createTempFile("temp", "CachingLib");
            } catch (IOException e) {
                logger.error("Can't create temp file", e);
            } finally {
                logger.debug("temp file created = " + saveCachPath.toString());
            }
        }

    SkiFF, 16 Июля 2015

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

    +86

    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
    function TSnifferMainForm.GetSetInjected(pID:Cardinal; Get:Boolean=False):Boolean;
    type rParam=record _pID:Cardinal; _Get,_Res:Boolean; end;
    const PE_STR='*RODC_PE ';
    var Params:rParam;
    function ProcCloseEnum(Handle:THandle; _Params:Integer):BOOL; stdcall;
    var TempPID:Cardinal; hCap:string; lCap:integer;
    begin
    Result:=True;
    GetWindowThreadProcessId(Handle,TempPID);
    if TempPID=rParam(Pointer(_Params)^)._pID then begin
    lCap:=SendMessage(Handle,WM_GETTEXTLENGTH,0,0);
    lCap:=lCap+1;
    SetLength(hCap,lCap-1);
    SendMessage(Handle,WM_GETTEXT,lCap,LongInt(@hCap[1]));
    if not rParam(Pointer(_Params)^)._Get then if Pos(PE_STR,hCap)=0 then SetWindowText(Handle,PAnsiChar(PE_STR+hCap)) else SetWindowText(Handle,PAnsiChar(StringReplace(hCap,PE_STR,'',[rfReplaceAll])))
    else if Pos(PE_STR,hCap)<>1 then rParam(Pointer(_Params)^)._Res:=False else rParam(Pointer(_Params)^)._Res:=True;
    Result:=False; end;
    end;
    begin
    Params._pID:=pID; Params._Get:=Get;
    EnumWindows(@ProcCloseEnum,Integer(@Params));
    Result:=Params._Res;
    end;

    Нет, сраный коллбек, я сделаю тебя локальным чего бы мне это не стоило!

    KOTOM, 12 Января 2015

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

    +86

    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
    const n=10;
    
    type
         xfl = record x: double; fl: longint; end;
      ar_xfl = array[1..2*n] of xfl;
    var
      i: longint;
      x,y,r: double;
      a: ar_xfl;
      f: text;
    
    
    procedure qsort(var a: ar_xfl; lo,hi: longint);
        procedure sort(l,r: longint);
        var
          i,j,k: longint;
          tmp: xfl;
        begin
          i:=l;
          j:=r;
          k:=(l+r) div 2;
          repeat
            while a[i].x<a[k].x do inc(i);
            while a[k].x<a[j].x do dec(j);
            if i<=j then
              begin
                tmp:=a[i];
                a[i]:=a[j];
                a[j]:=tmp;
                inc(i);
                dec(j);
              end;
          until i>j;
          if l<j then sort(l,j);
          if i<r then sort(i,r);
        end;
    begin
    sort(lo,hi);
    end;

    За такие названия переменных надо руки завязывать узлом. Да и помимо этого..

    Cynicrus, 05 Декабря 2014

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