1. Pascal / Говнокод #3373

    +100

    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
    procedure WriteCharXY(_bx,by:integer; ch:char; tcol:word);
    var buf:array[1..18,1..12] of word;
    XOfs:longint;
    x,y,px,py:integer;
    begin
    XOfs:=GetCharOffset(ch);
    if xofs=0 then fillchar(buf,sizeof(buf),200) else
    fromXMS(XOfs,addr(buf),432);
    for y:=1 to 18 do
    for x:=1 to 12 do begin
    if buf[y,x]=0 then begin
       px:=_bx+x; py:=by+y;
       asm
       mov   bx,px;  add   bx,actviewport.x1;  cmp   bx,fillviewport.x1;
       jl    @end;  cmp   bx,fillviewport.x2; jg    @end;
       mov   cx,currentmode.scanline;  cmp   bx,cx;  jnb   @end;
       mov   ax,py;  add   ax,actviewport.y1;  cmp   ax,fillviewport.y1;
       jl    @end;  cmp   ax,fillviewport.y2;  jg    @end;
       add   ax,pageadd;  mul   cx;  add   bx,bx;
       add   ax,bx;  adc   dx,0;  mov   si,ax;
       cmp   dx,lastbank;  je    @next;  push  dx;
       call  nearsetbank2;  @next:  mov   es,[currentmode.writeptr];
       mov   ax,tcol;  {cmp   writemode,0;  jne   @doxor;}
       mov   es:[si],ax;  {jmp   @end;  @doxor: xor   es:[si],ax;}  @end:
       end;
    end;
    end;
    end;
    
    procedure WriteStringXY(x,y,maxx:integer; s:string; col:word);
    var tx,ty:integer; i:word;
    begin tx:=x; ty:=y;
    for i:=0 to length(s) do begin
    writecharXY(tx,ty,s[i],col);
    inc(tx,GetCharWidth(s[i]));
    if (tx>=maxx) and (s[i]=' ') then begin inc(ty,18); tx:=x; end;
    end;
    end;
    
    procedure Write5Strings(x,y,maxx:integer; col:word; s1,s2,s3,s4,s5:string;
    letterdelay:byte);
    var tx,ty:integer; t,i:word;
    st:array[1..5] of string;
    begin tx:=x; ty:=y;
    st[1]:=s1; st[2]:=s2; st[3]:=s3; st[4]:=s4; st[5]:=s5;
    for t:=1 to 5 do begin
    if length(st[t])=0 then exit;
       for i:=1 to length(st[t]) do begin
       writecharXY(tx,ty,st[t][i],col);
       if letterdelay>0 then pdel(letterdelay);
       inc(tx,GetCharWidth(st[t][i]));
       if (tx>=maxx-100) and (st[t][i]=' ') then begin
       inc(ty,18); tx:=x; end;
       end;
    end;
    end;

    Молодость.

    runewalsh, 01 Июня 2010

    Комментарии (21)
  2. Си / Говнокод #3372

    +144

    1. 1
    2. 2
    3. 3
    bool somevar;
    //... ... ...
    if(somevar==true)doSomething();

    И это в книге, по которой учат детей.

    frp, 01 Июня 2010

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

    +101

    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
    function IPtoDWORD(const s: string):DWORD;
    var
    L: TStringList;
    b: packed array [0..3] of byte;
    i: Integer;
    begin
    Result := 0;
      L := TStringList.Create;
        try
          L.Delimiter := '.';
            L.DelimitedText := s;
              for i := 0 to 3 do
                b[3 - i] := StrToInt(L[i]);
                  Result := pdword(@b[0])^;
        finally
          L.Free
        end;
    end;
    ...
    if (NewIP >= IPtoDWORD('192.168.0.0')) and (NewIP <= IPtoDWORD('192.168.0.255')) then
      //Пускаем
        else
          ServerSocket.Socket.Connections[i - 1].SendText('запрет'); //Запрет
            ServerSocket.Socket.Connections[i - 1].Close; //Закрываем канал
              if (NewIP >= IPtoDWORD('193.168.0.0')) and (NewIP <= IPtoDWORD('193.168.0.255')) then
                //Пускаем
                if (NewIP >= IPtoDWORD('194.168.0.0')) and (NewIP <= IPtoDWORD('194.168.0.255')) then
                  //Пускаем
                    if (NewIP >= IPtoDWORD('195.168.0.0')) and (NewIP <= IPtoDWORD('195.168.0.255')) then
                      //Пускаем

    личинка быдлокодера в схватке с IPv4
    примечательно искрометное форматирование кода

    bugmenot, 01 Июня 2010

    Комментарии (18)
  4. PHP / Говнокод #3370

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public static function getSizeformat($iNumber){
        $value = "-";
        if($iNumber){
          $iNumber = $iNumber/100000;
          $value = number_format($iNumber, 2, '.', '');
        }
        return $value;
      }

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

    psych, 01 Июня 2010

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

    +121

    1. 1
    2. 2
    lbxLibrary.Columns[2].ColumnWidth = lbxLibrary.Width - (2 + 15 + 4 + 15 + 4 + 15 + 4 + 16 + 2 + 2);
     lbxSamples.Columns[2].ColumnWidth = lbxLibrary.Width - (2 + 15 + 4 + 15 + 4 + 15 + 4 + 16 + 2 + 2);

    Американское спагетти.
    Подобное содержится в методе InitializeComponent() более чем в 20-ти формах! Кто не помнит, InitializeComponent() формируется дизайнером автоматически, и крайне нежелательно вносить в него изменения. Везде разные объекты, и во многих местах отличны числа.

    Dmitriy, 01 Июня 2010

    Комментарии (6)
  6. Си / Говнокод #3368

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (nidx == -1) {
      networkIdx = -1;
    } else {
      networkIdx = nidx;
    }

    raorn, 01 Июня 2010

    Комментарии (15)
  7. SQL / Говнокод #3367

    −861

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    errnum := 0;
    if (bitand(err, 1) != 0) then
    	errnum := -20027;
    end if;
    
    if (bitand(err, 2) != 0) then
    	if (errnum = 0) then
    		errnum := -20028;
    	else 
    		errnum := -20029;
    	end if;
    end if;

    Это PL/SQL
    Это мой первый вариант, я заменил его потом на этот, в одну строку:
    errnum := -20026 - (bitand(err, 1) + bitand(err, 2));

    Oleg_quadro_, 01 Июня 2010

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

    +159

    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
    function HighlightSelectedKaskoPriceCell(currentCell, toggle, useParent)
    {
        if(currentCell)
        {
            if(toggle)
            {
                if(!useParent)
                    $(currentCell).css("background-color", "rgb(247, 144, 52)");
                else
                    $(currentCell).parent().css("background-color", "rgb(247, 144, 52)");
            }
            else
            {
                if(!useParent)
                    $(currentCell).css("background-color", "#FEF3EB");
                else
                    $(currentCell).parent().css("background-color", "#FEF3EB");
    
            }
        }    
    }
    
    function GetSelectedKaskoPriceCellHighlighting(currentCell, useParent)
    {
        if(!useParent)
            return ($(currentCell).css("background-color") == "rgb(247, 144, 52)");
        else
            return ($(currentCell).parent().css("background-color") == "rgb(247, 144, 52)");
    }

    Способ выделить ячейку таблицы и выяснить, была ли она выделена.

    blaster999, 01 Июня 2010

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

    +175

    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
    if($hour == 1){
    $hour = "01";
    }
    if($hour == 2){
    $hour = "02";
    }
    if($hour == 3){
    $hour = "03";
    }
    if($hour == 4){
    $hour = "04";
    }
    if($hour == 5){
    $hour = "05";
    }
    if($hour == 6){
    $hour = "06";
    }
    if($hour == 7){
    $hour = "07";
    }
    if($hour == 8){
    $hour = "08";
    }
    if($hour == 9){
    $hour = "09";
    }if($hour == 0){
    $hour = "00";
    }

    Marker689, 01 Июня 2010

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

    −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
    ' Это первый конструктор:
    
    Public Sub New(ByVal ParmName0 As String, ByVal ParmValue0 As Object)
      PRM(0) = New SqlParameter(ParmName0, ParmValue0)
      CMD.Parameters.Add(PRM(0))
    End Sub
    
    ' ... 20-30 конструкторов спустя:
    
    Public Sub New(ByVal ParmName0 As String, ByVal ParmValue0 As Object, ByVal ParmName1 As String, ByVal ParmValue1 As Object, ByVal ParmName2 As String, ByVal ParmValue2 As Object, ByVal ParmName3 As String, ByVal ParmValue3 As Object, ByVal ParmName4 As String, ByVal ParmValue4 As Object, ByVal ParmName5 As String, ByVal ParmValue5 As Object, ByVal ParmName6 As String, ByVal ParmValue6 As Object, ByVal ParmName7 As String, ByVal ParmValue7 As Object, ByVal ParmName8 As String, ByVal ParmValue8 As Object, ByVal ParmName9 As String, ByVal ParmValue9 As Object, ByVal ParmName10 As String, ByVal ParmValue10 As Object, ByVal ParmName11 As String, ByVal ParmValue11 As Object, ByVal ParmName12 As String, ByVal ParmValue12 As Object, ByVal ParmName13 As String, ByVal ParmValue13 As Object, ByVal ParmName14 As String, ByVal ParmValue14 As Object, ByVal ParmName15 As String, ByVal ParmValue15 As Object, ByVal ParmName16 As String, ByVal ParmValue16 As Object, ByVal ParmName17 As String, ByVal ParmValue17 As Object, ByVal ParmName18 As String, ByVal ParmValue18 As Object, ByVal ParmName19 As String, ByVal ParmValue19 As Object, ByVal ParmName20 As String, ByVal ParmValue20 As Object, ByVal ParmName21 As String, ByVal ParmValue21 As Object, ByVal ParmName22 As String, ByVal ParmValue22 As Object, ByVal ParmName23 As String, ByVal ParmValue23 As Object, ByVal ParmName24 As String, ByVal ParmValue24 As Object, ByVal ParmName25 As String, ByVal ParmValue25 As Object, ByVal ParmName26 As String, ByVal ParmValue26 As Object, ByVal ParmName27 As String, ByVal ParmValue27 As Object, ByVal ParmName28 As String, ByVal ParmValue28 As Object, ByVal ParmName29 As String, ByVal ParmValue29 As Object)
        Call Me.New(ParmName0, ParmValue0, ParmName1, ParmValue1, ParmName2, ParmValue2, ParmName3, ParmValue3, ParmName4, ParmValue4, ParmName5, ParmValue5, ParmName6, ParmValue6, ParmName7, ParmValue7, ParmName8, ParmValue8, ParmName9, ParmValue9, ParmName10, ParmValue10, ParmName11, ParmValue11, ParmName12, ParmValue12, ParmName13, ParmValue13, ParmName14, ParmValue14, ParmName15, ParmValue15, ParmName16, ParmValue16, ParmName17, ParmValue17, ParmName18, ParmValue18, ParmName19, ParmValue19, ParmName20, ParmValue20, ParmName21, ParmValue21, ParmName22, ParmValue22, ParmName23, ParmValue23, ParmName24, ParmValue24, ParmName25, ParmValue25, ParmName26, ParmValue26, ParmName27, ParmValue27, ParmName28, ParmValue28)
       PRM(29) = New SqlParameter(ParmName29, ParmValue29)
       CMD.Parameters.Add(PRM(29))
    End Sub

    Перегрузка по-говнокодерски. Сие великолепие автор комментирует так:

    "Одновременно для всяких начинающих, которые прослушали лекции про типы данных ParamArray - разъясняю, что типы данных идут вперемешку - строка/обьект - пример вызова с формы выложен выше. И ParamArray здесь приведет к необходимости преобразования строки в обьект. Что во-первых неэффективно и ненужно, а во вторых отключит проверку типа параметра и легко можно будет пропустить название параметра и указать вместо него собственно значение параметра."

    "И наконец, при отсутствии такого полиморфного конструктора, принимающего от нуля до 30 параметров - эта функция и вовсе утрачивает смысл. Ибо тридцать строк на форме для одного обращения в базу? Это может показаться приемлимым только тем, кто вообще никогда не занимался программированием."

    Webkill, 01 Июня 2010

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