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

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

    +92.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    name[0].InnerText = Regex.Replace(name[0].InnerText, @"<[^>]+>", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "a*[a-z]*A*[A-Z]*", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, ",", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\\.", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, ";", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "&", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\\?", string.Empty); 
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\n", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, " ", string.Empty);

    такие дела. кстати, как улучшить? :)) Нужно, чтобы обрезалось все, кроме чисел (положительных и отрицательных) Я какбе начинающий

    Yurik, 07 Января 2010

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

    +92.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    procedure MyLine(X1, Y1, X2, Y2: Integer; Color: TColor; Canvas: TCanvas);
    begin
      if (Abs(X1 - X2) <= 1) and (Abs(Y1 - Y2) <= 1) then
        Canvas.Pixels[X1, Y1] := Color
      else
      begin
        MyLine(X1, Y1, (X1 + X2) shr 1, (Y1 + Y2) shr 1, Color, Canvas);
        MyLine((X1 + X2) shr 1, (Y1 + Y2) shr 1, X2, Y2, Color, Canvas);
      end;
    end;

    Когда-то давно очень увлекался рисованием в ДОС-е.
    До сих пор помню процедуру быстрого рисования кривой прямой %)
    представляю на суд тот же алгоритм.

    Arch, 29 Октября 2009

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

    +92.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case MessageDlg('Сформировать отчет за месяц (YES), квартал (NO), год (CANCEL)?',mtWarning,[mbYes,mbNo,mbCancel],0) of
    mrYes://...
    mrNo://...
    mrCancel://...
    end;

    Интересно, что будет, если потребуется расширить программу (добавить новые временные периоды)?

    Lester, 31 Января 2010

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

    +92.7

    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
    unit CelFahKel;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        RadioGroup1: TRadioGroup;
        RadioGroup2: TRadioGroup;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      F: Extended;
      C: Integer;
    begin
      if RadioGroup1.ItemIndex=0 then
    
        if RadioGroup2.ItemIndex=0 then
          Edit2.Text := Edit1.Text
        else if RadioGroup2.ItemIndex=1 then
        begin
          F := StrToFloat(Edit1.Text) * (9/5) + 32;
          Edit2.Text := FloatToStr(F)
        end
        else if RadioGroup2.ItemIndex=2 then
        begin
          C := StrToInt(Edit1.Text) + 273;
          Edit2.Text := FloatToStr(C);
        end;
    
      if RadioGroup1.ItemIndex=1 then
        if RadioGroup2.ItemIndex=0 then
        begin
          F := StrToFloat(Edit1.Text) - 32 * (5/9);
          Edit2.Text := FloatToStr(F);
        end
        else if RadioGroup2.ItemIndex=1 then
          Edit2.Text := Edit1.Text
        else if RadioGroup2.ItemIndex=2 then
        begin
          F := StrToFloat(Edit1.Text) - 32 * (5/9) + 273;
          Edit2.Text := FloatToStr(F);
        end;
    
      if RadioGroup1.ItemIndex=2 then
        if RadioGroup2.ItemIndex=0 then
        begin
          C := StrToInt(Edit1.Text) - 273;
          Edit2.Text := IntToStr(C);
        end
        else if RadioGroup2.ItemIndex=1 then
        begin
          F := StrToFloat(Edit1.Text) + 32 * (9/5) - 273;
          Edit2.Text := FloatToStr(F);
        end
        else if RadioGroup2.ItemIndex=2 then
           Edit2.Text := Edit1.Text
    end;
    end.

    Всего-то навсего перевод градусных величин: Сельсий <-> Фаренгейт <-> Кельвин и вывод в Эдит

    sevenfourk, 18 Ноября 2009

    Комментарии (1)
  6. PHP / Говнокод #1168

    +92.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function atack_is_true(){
    // функция защиты от хакерских атак
    echo "AХТУНГ";
    // блокируем нарушителя
    while(1){}

    Нечто подобное видел в самописной "луТшей CMS в мире", с портфелем разрабов на фрихосте,с дизайном от монстров и ифреймом. Они её денег хотели))))

    guest, 08 Июня 2009

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

    +92.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    void Read_Ri( int hARINC,unsigned short int *Data ,int *i16,int *i15,int *i14,
    	int *i13,int *i12,int *i11,int *i10,int *i9,int *i8,int *i7,int *i6,int *i5,int *i4,int *i3,int *i2,int *i1)
    {
    		ioctl(hARINC,IOCTL_GET_RI,Data);
       		*i16=Data[0x1104]>>15&1; *i15=Data[0x1104]>>14&1; *i14=Data[0x1104]>>13&1;
    		*i13=Data[0x1104]>>12&1; *i12=Data[0x1104]>>11&1; *i11=Data[0x1104]>>10&1;
    		*i10=Data[0x1104]>>9&1; *i9=Data[0x1104]>>8&1; *i8=Data[0x1104]>>7&1;
    		*i7=Data[0x1104]>>6&1; *i6=Data[0x1104]>>5&1; *i5=Data[0x1104]>>4&1;
    		*i4=Data[0x1104]>>3&1; *i3=Data[0x1104]>>2&1; *i2=Data[0x1104]>>1&1; *i1=Data[0x1104]&1;
    }

    Фирма "Элкус" порадовала. Хорошо, что у их платы не 32-разрядные регистры :)

    whiskey, 05 Апреля 2010

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

    +92.4

    1. 1
    2. 2
    if (a<0) or (a=0) 
    then ...

    Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?

    Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.

    S@nderS, 25 Ноября 2009

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

    +92.3

    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
    program krestiki_noliki;
    var a,b,c,
        d,e,f,
        g,h,i,
        click:char;
        cl,cr,count:smallint;
    
    procedure move; forward;
    
    procedure clickproc;
    begin
     If cr=0
      then
       begin
        cr:=1;
        click:='X';
       end
      else
       begin
        cr:=0;
        click:='O';
       end;
    end;
    
    procedure restart;
    begin
    if count<9
       then move
       else
        begin
         count:=0;
         cr:=0;
         cl:=0;
         click:='X';
         a:='_';
         b:='_';
         c:='_';
         d:='_';
         e:='_';
         f:='_';
         g:='_';
         h:='_';
         i:='_';
        end;
    end;
    
    procedure move;
    begin
      readln(cl);
      clickproc;
      if (cl=1) and (a='_') then a:=click;
      if (cl=2) and (b='_') then b:=click;
      if (cl=3) and (c='_') then c:=click;
      if (cl=4) and (d='_') then d:=click;
      if (cl=5) and (e='_') then e:=click;
      if (cl=6) and (f='_') then f:=click;
      if (cl=7) and (g='_') then g:=click;
      if (cl=8) and (h='_') then h:=click;
      if (cl=9) and (i='_') then i:=click;
      count:=count+1;
      writeln(a,'|',b,'|',c);
      writeln(d,'|',e,'|',f);
      writeln(g,'|',h,'|',i);
      writeln('-----');
      restart;
    end;
    
    begin
    count:=0;
    cr:=0;
    writeln('1|2|3');
    writeln('4|5|6f');
    writeln('7|8|9');
    writeln('-----');
    restart;
    end.

    навеяло кодом на Visual Basic, подумал что смогу воплотить на Паскале. Зря, не стоило...
    (так и не понял, что именно не работает)

    Airbus, 23 Ноября 2009

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

    +92.2

    1. 1
    UniqueNamesTableUtils.putPortletRequestIntoResourceRecordLazyLoadAdminTableModelInSession(portletrequest);

    Это IBM WebSphere Portal 6.0 - код является частью портлета, отвечающего за управление объектами портала (административный интерфейс).

    guest, 27 Февраля 2009

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

    +92.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
    mTr.StartTransaction;
    
    mdsMaters.DisableControls;
    DBGridEh1.SaveBookmark;
    try
       DBGridEh1.RestoreBookmark;
       mdsMaters.EnableControls;
    
       [.... обход датасета ....]
    
    finally
      mTr.Commit;
    end;

    Как известно, перед обходом датасета нужно делать DisableControls, а главное, не забыть вызвать EnableControls.

    Чем раньше - тем лучше :)

    LionSoft, 30 Ноября 2009

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