1. VisualBasic / Говнокод #3323

    −349

    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
    Function shr(ByVal a As Long, ByVal i As Long) As Long
    Dim r As Variant
    r = a / (2 ^ i)
    shr = Fix(r)
    End Function
    
    'используется для получения значения n-го бита таким вот образом
    if (shr(value,n) mod 2)=1 then
    ....
    end if
    
    'в другом месте почему-то биты проверяются по-другому
    For i = 2 To Len(s)
      a = Asc(Mid(s, i, 1))
      b = (q Mod (2 ^ (i - 1))) \ (2 ^ (i - 2))
      If b = 1 Then a = a - 32  'сути этого я так и не понял
      t = t + Chr(a)
    Next

    мастерская работа с битами. епта я б на асме это в 1 строку сделал

    3.14159265, 26 Мая 2010

    Комментарии (44)
  2. C# / Говнокод #3322

    +119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (dataTank.UpdateSQLTable(addressTbl, (int)SharedConstants.FocusAdapterTables.Address, SharedConstants.FocusAdapterTables.Address.ToString()) > 0)
              {
                return true;
              }
              return false;

    Yeah, baby!
    Похоже, ребята специально создавали себе места для рефакторинга - набудущее, чтобы было чем заняться.

    Progreso, 26 Мая 2010

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

    +169

    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
    htaccess:
    
    DirectoryIndex index.php
    RewriteEngine on
    RewriteBase /
    RewriteRule ^0.html$ style/index.php
    RewriteRule ^1.html$ style/index.php?id=register
    RewriteRule ^2.html$ style/index.php?id=download
    RewriteRule ^3.html$ style/index.php?id=top_chars
    RewriteRule ^4.html$ style/index.php?id=who_online
    RewriteRule ^5.html$ style/index.php?id=top_zeny
    RewriteRule ^6.html$ style/index.php?id=top_mvp
    RewriteRule ^7.html$ style/index.php?id=top_pvp
    RewriteRule ^8.html$ style/index.php?id=top_guild
    RewriteRule ^9.html$ style/index.php?id=who_sell_buy
    RewriteRule ^10.html$ style/index.php?id=first_class
    
    
    php:
    
    <?php
    $url = $REQUEST_URI;
    $url2 = strlen($url);
    if($url2 > 14) { 
    header("location: ./");
    exit;
    }
        
    ?>

    Комментарий от автора:

    "Да тут реврайт для того, чтобы превратить ссылки в одинаковую длину, а потом уже проверять длину ссылки, если больше нормы переадресиция на главную..."

    xynta, 26 Мая 2010

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

    +124

    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
    switch ((int)row["State"])
              {
                case 0:
                  /*** Get Contact Row for Company ***/
                  if (contactTbl != null)
                  {
                    contactRow = null;
                    DataRow[] contactRows = contactTbl.Select("Company_Id='" + row["Id"].ToString() + "'");
                    if (contactRows != null && contactRows.Length > 0)
                    {
                      contactRow = contactRows[0];
                      if ((bool)contactRow["fDontMailshot"] == false)
                      {
                        thisMailShot = true;
                      }
                      else
                      {
                        thisMailShot = false;
                      }
                    }
                  }
    
                  if ((bool)row["fManagementCompany"] == true)
                  {
                    if (row["Id"].ToString() == "00-20181" || row["Id"].ToString() == "00-60838")
                    {
                      myEntityID = Entity(2, row);
                      if (!SubContractor(myEntityID, row)) { return false; }
                    }
                    else
                    {
                      myEntityID = Entity(10, row);
                    }
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                  }
                  else if ((bool)row["fSubcontractor"] == true || ((bool)row["fSupplier"] == true && (bool)row["fCustomer"] == false))
                  {
                    myEntityID = Entity(2, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!SubContractor(myEntityID, row)) { return false; }
                  }
                  else if ((bool)row["fHousingAssociation"] == true)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["f2ndOwnerTenant"] == true && (bool)row["fCustomer"] == false)
                  {
                    myEntityID = Entity(8, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == false)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == true)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  break;
                default:
                  break;
              }

    Отличный пример использования конструкций ветвления. Имеем switch, в нём один case, а в кейсе много-много иф-элсов. И что очень характерно для этого проекта с тремя классами по 9000 строк, никакого повторного использования кода. Реализация принципа "зачем писать меньше?".

    Progreso, 26 Мая 2010

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

    +116

    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
    for m:=0 to 9 do
          mas[m]:=inttostr(m);
      if ((Form1.edit1.text='')or(Form1.Memo2.text='')) then    begin
          if Form1.Memo2.text='' then
              ShowMessage('Ошибка! Введите пожалуйста текст или подключите файл,который необходимо расшифровать!!!');
          if Form1.edit1.text='' then
              ShowMessage('Ошибка! Введите пожалуйста ключ,которым будет расшифрован текст!!!');
        end
      else    begin
          //проверка ключа
          key:=Form1.edit1.text;
          k:=length(key);
          c:=0;
          k_p:=true;
          for j:=1 to k do
          for m:=0 to 9 do begin
              if (key[j]=mas[m]) then  
                  inc(c)
              else Begin
                  if (m=9) then
                    if (c=0) then Begin
                        ShowMessage('Ошибка!!!Введите пожалуйста ключ,которым будет расшифрован текст-целые числа');
                        k_p:=false;
                      end
                    else
                      c:=0;
                end;
            end;
        end;

    говнокриптография...

    3.14159265, 26 Мая 2010

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

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <script>                                                                                                                           
    function build_view(){
      $('div.content').append(""+  <?php $flag=false; foreach($work_meters as $work){?> "<div id=\"<?=$work->id?>\" style='margin-bottom:30px;' >  <span class=\"name\"><?=$work->name?> </span>  <div s\
    tyle=\"display:inline;float:left\" align=\"left\" >   <table class='data_table' style=\"margin-top:50px;\" id='table_<?=$work->id?>'>    <tr>    <td>дата</td><td>значение</td>"+  <?php if(in_array\
    (5, $user->roles)) { ?> "  <td></td>    "+  <?php } ?> <?php while(list($key, $vals) = each($work->data)){ ?>  "  <tr><td><?=$vals[0]?></td> <td><?=$vals[1]?></td>      "+     <?php if(in_array(5,\
     $user->roles)) { ?>        "    <td><a onclick=\"delete_row(<?=$key?>, <?=$work->id?>)\" href='javascript:void(0);'>удалить</a></td>       "+    <?php } ?>  "     </tr>   "+        <?php } ?>"   \
    </tr>     "+  <?php if(in_array(5, $user->roles)) { ?>  "  <tr><td><input type='text' name='date' size='7'/></td><td><input type='text' name='value' size='5'/></td><td><input type='button' value='\
    добавить' onclick='add_data(<?=$work->id?>, $(this).parent().parent());'></td></tr>       <tr><td colspan='3' style='text-align:right;'><input type='button' onclick='save(<?=$work->id?>);' value='\
    сохранить'></td></tr>       "+  <?php } ?>  "  </table> </div>  <div style=\"width:600px;height:300px;margin-left:120px;\" class=\"image\">     </div>  <div class=\"description\" style='margin-top\
    =10px;'>    <?=$work->description?> </div>  </div>"+        <?php $flag = true;} ?>"" );
      }
    </script>

    эта ересь генерирует html для javascript функции которая втсавляет это всё в страницу.

    Arnial, 26 Мая 2010

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

    +157

    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
    /**********************************************************************
    		*  Connect to DB - over-ridden by specific DB class
    		*/
    
    		function connect()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Select DB - over-ridden by specific DB class
    		*/
    
    		function select()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Basic Query	- over-ridden by specific DB class
    		*/
    
    		function query()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Format a string correctly for safe insert - over-ridden by specific
    		*  DB class
    		*/
    
    		function escape()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Return database specific system date syntax
    		*  i.e. Oracle: SYSDATE Mysql: NOW()
    		*/
    
    		function sysdate()
    		{
    			die(EZSQL_CORE_ERROR);
    		}

    Продвинутый способ создания абстрактных методов. Это кагбе абстрактный класс, от которого наследуются БД-специфичные классы. Затем какая вам БД нужна, под такую руками и создавайте экземпляр нужного класса, "фабрикой" даже и не пахнет.
    Зовётся сие чудо ezSQL. Используется в NetCat. Ладно хоть не сами наложили (налажали?), но всё ж головой не подумали, когда брали.

    telnet, 26 Мая 2010

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

    +164

    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
    // set admin mode
    switch (true) {
      case $nc_core->inside_admin:
        $nc_core->admin_mode = true;
      break;
      case !$passed_thru_404 && isset($posting): // add (edit) action
        $nc_core->admin_mode = $admin_mode;
      break;
      case !$passed_thru_404: //front-office
        $nc_core->admin_mode = true;
      break;
      case $passed_thru_404:
        $nc_core->admin_mode = false;
      break;
      default:
        $nc_core->admin_mode = false;
    }

    /netcat/require/index.php
    Что они там курят, что у них настолько извилины выпрямляются?!

    telnet, 26 Мая 2010

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

    +167

    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
    <?
    error_reporting(0);
    $b=array("Калининград","Вологда","Далматово","Дмитров","Архангельск","Владивосток","Краков");
    
    //конкурсный код:
    //begin
    for($i=0;$i<7;$i++){$s.="for(\$z[$i]=0;\$z[$i]<7;\$z[$i]++)";$n.="\$z[$i],";$q.="\$b[\$z[$i]],";}$f='for($i=0;$i<7;$i++){$l[$i]=strlen($b[$i])-1;$c[$i]=strtolower($b[$i]);for($j=0;$j<7;$j++)if($i!=$j&&$b[$i][$l[$i]]==strtolower($b[$j][0]))$e[$i]=true;}'.$s.'{$y=array('.$n.');sort($y);if($y==array(0,1,2,3,4,5,6)){$d=true;for($i=0;$i<6;$i++)if($d&&$c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0]&&($e[$z[$i]]||$c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))$d=!$d;if($d)$a=array('.$q.');}}';eval($f);
    //end
    print_r($a);
    
    
    
    echo "<br />";
    echo "<br />";
    
    
    
    //тоже самое в нормальном виде:
    
    for($i=0;$i<7;$i++)
    {
      $l[$i]=strlen($b[$i])-1;
      $c[$i]=strtolower($b[$i]);
      for($j=0;$j<7;$j++)  
      {
        if($i!=$j && $b[$i][$l[$i]]==strtolower($b[$j][0]))
        {
          $ecantUsePrelast[$i] = true;
        }
      }
    };
     
      for($z[0]=0;$z[0]<7;$z[0]++)
        for($z[1]=0;$z[1]<7;$z[1]++)
          for($z[2]=0;$z[2]<7;$z[2]++)
            for($z[3]=0;$z[3]<7;$z[3]++)
              for($z[4]=0;$z[4]<7;$z[4]++)
                for($z[5]=0;$z[5]<7;$z[5]++)
                  for($z[6]=0;$z[6]<7;$z[6]++)
                  {
                    $y=array($z[6],$z[5],$z[4],$z[3],$z[2],$z[1],$z[0]);
                    sort($y);
                    if($y==array(0,1,2,3,4,5,6))
                    {
                      $dcorrect=true;
                      for($i=0;$i<6;$i++)                    
                        if($dcorrect && $c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0] && ($ecantUsePrelast[$z[$i]] || $c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))
                          $dcorrect=!$dcorrect;
                      if($dcorrect)
                      {
                        $a=array($b[$z[0]],$b[$z[1]],$b[$z[2]],$b[$z[3]],$b[$z[4]],$b[$z[5]],$b[$z[6]]);
                      }
                    }
                  }    
           
     
    print_r($a);
    
    ?>

    Чтобы немного развеять "академическую" атмосферу на сайте, мы решили провести конкурс в стиле Code Golf (написать программное решение задачи, использовав минимальное количество символов)

    Задание: написать программу для игры «в города».

    На вход подается массив вида

    [Калининград, Вологда, Алматы, Дмитров, Архангельск, Тобольск, Краков]

    На выходе.

    [Архангельск, Краков, Вологда, Алматы , Тобольск, Калининград, Дмитров]

    xytop, 26 Мая 2010

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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (!isset($f_i[$i]))
    {
    
    echo $f_i[$i],"<br>";
    }
    }

    Vasiliy, 26 Мая 2010

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