1. Python / Говнокод #4556

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def __init__(self, pth = None):
    		self._tag = None
    		self._valid = False
    		self._pthtofile = pth
    		if pth != None:
    			try:
    				self._tag = tagpy.FileRef(pth).tag()
    				self._valid = True
    			except ValueError:
    				pass

    Конструктор класса.
    Дальше приходится всё время дёргать объект проверяя его на валидность.
    Как переписать не так говнисто?

    KoirN, 07 Ноября 2010

    Комментарии (2)
  2. PHP / Говнокод #4555

    +145

    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
    /**
         * Получаем права на объект.
         *
         * @param  string $fullHref
         * @param  string $method
         * @param  string $params
         * @param  string $type
         * @return object $this
         * @access public
         */
    
        public function getPermsHref( $object, $method = '*', $params = false, $type = 'module', $url = false )
        {
           $registr = URegistry::getInstance();
           $sql     = $registr->SQuery->getAcl();
    
           if ( $type == 'url' && $url )
             {
               $sql['where'] = "`o`.`type` = 'url' and `o`.`href` = '".$url."'";
               $ac_type      = 'url';
             }
           elseif ( $type == 'module' )
             {
                $sql['where'] = "(`o`.`type` = 'module') and `o`.`name` = '".$object."'";
                if ( $method != '*' )
                    $sql['where'] .= ' or `o`.`href` = "'.$object.'/'.$method.'"';
    
                $ac_type = 'module';
             }
           else
             {
                //TODO:wtf?
             }
    
            $registr->db->build_query($sql)->safe_sql($ac_type, $this->gid)->exec();
            $perms = $registr->db->fetch_object();
    
            if ( !$perms || !$perms->permission || !$perms->groupid )
                throw new NotFoundObject();
    
            $this->perms       = $perms->permission;
            $this->groupObject = explode(',', $perms->groupid);
            $this->priv_lengh  = strlen($perms->permission);
    
            return $this;
        }
    
        /**
         * Проверка прав на объект
         *
         * @param  mixed $priv
         * @return array
         * @access public
         */
    
        public function checkPremsObject( $priv = false )
        {
            $pruf = array();
            $priv = empty($priv) ? $this->perms : $priv;
    
            if ( $this->priv_lengh <= 0 or !in_array($this->gid, $this->groupObject) )
                return false;
    
            for ( $gi = 0; $gi < $this->priv_lengh; $gi++ )
            {
                if ( in_array($priv[$gi], $this->privileges['read']) )   $pruf['read'] = true;
                if ( in_array($priv[$gi], $this->privileges['write']) )  $pruf['write'] = true;
                if ( in_array($priv[$gi], $this->privileges['delete']) ) $pruf['delete'] = true;
            }
    
            return $pruf;
        }

    Проверка прав.
    Что скажите?

    ololo, 07 Ноября 2010

    Комментарии (16)
  3. C++ / Говнокод #4554

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    {
    float y,a,b;
    int x;
    a=StrToFloat(Edit1->Text);
    b=StrToFloat(Edit2->Text);
    for (x=1;x<=10;x+=2);
    {
    y=x*x/(a+b);
    Memo1->Lines->Add("x="+FloatToStr(x)+"\ty="+FloatToStr(y));
    }
    }

    программа вычисления функции , при изменении Х от 1 до 10 .

    samvel13, 07 Ноября 2010

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

    +111

    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
    if Z = 'Pr'
        then
          case N of
          1: Series1.Assign(Series33);
          2: Series2.Assign(Series33);
          3: Series3.Assign(Series33);
          4: Series4.Assign(Series33);
          5: Series5.Assign(Series33);
          end
        else
          if Z = 'ST'
            then
              case N of
              1: case Kolvo_Issledovanii of
                1: Series6.Assign(Series33);
                2: Series34.Assign(Series33);
                3: Series59.Assign(Series33);
                end;
    //пропущено 15 строк 
              5: case Kolvo_Issledovanii of
                1: Series10.Assign(Series33);
                2: Series38.Assign(Series33);
                3: Series63.Assign(Series33);
                end;
              end
            else
              if Z = 'TT'
                then
                  case N of
                  1:
                    case Kolvo_Issledovanii of
                    1: Series11.Assign(Series33);
                    2: Series39.Assign(Series33);
                    3: Series64.Assign(Series33);
                    end;
    //в том же духе, ещё 150 строк
    //вообще-то, в том же духе - весь код, около 5000 строк
    //...
    
    //в другом месте:
      Series1.Clear;
      Series2.Clear;
      Series3.Clear;
      Series4.Clear;
    //пропущено 75 строк
      Series80.Clear;
      Series81.Clear;
      Series82.Clear;
      Series83.Clear;
    //...
    
      Series1.Active:=false;
      Series2.Active:=false;
      Series3.Active:=false;
      Series4.Active:=false;
    //пропущено 75 строк
      Series80.Active:=false;
      Series81.Active:=false;
      Series82.Active:=false;
      Series83.Active:=false;

    Фтопку ООП!
    Такой вот диплом был сдан кем-то в прошлом году.

    maniac, 07 Ноября 2010

    Комментарии (16)
  5. PHP / Говнокод #4552

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    switch ($_GET['otdel']) {
    	case null:
    		echo "Название отдела №1";
    		$_GET['otdel'] = 1;
    	break;
    	case 1:
    		echo "Название отдела №1";
    	break;
    
    	case 11:
    // и так далее

    Отдел по умолчанию.
    Вариантов написать толково - тьма. Попробуем?

    AndryG, 07 Ноября 2010

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function testPrint($str){
    
    
    	return $str;        
    
    }
    print testPrint("<br>");

    Недавно видел такую полезную функцию:)

    dexif, 07 Ноября 2010

    Комментарии (19)
  7. Куча / Говнокод #4550

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <tr>
    <td><td><td><td><td><td><td><td>
    &nbsp;
    </td></td></td></td></td></td></td></td>
    </tr>

    взялся за реконструкцию одного проекта... там есть сводная таблица и она должна быть разделена на 10 частей по вертикали... Предыдущий программист реализовал разделитель так...

    dexif, 07 Ноября 2010

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

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <!--uSpoiler-->
    <div class="uSpoilerClosed" id="uSpoiler8deJ5b">
      <div class="uSpoilerButBl">
        <input type="button" class="uSpoilerButton" onclick="if($('#uSpoiler8deJ5b')[0]){if ($('.uSpoilerText',$('#uSpoiler8deJ5b'))[0].style.display=='none'){$('.uSpoilerText',$('#uSpoiler8deJ5b'))[0].style.display='';$('.uSpoilerButton',$('#uSpoiler8deJ5b')).val('Закрыть спойлер');$('#uSpoiler8deJ5b').attr('class','uSpoilerOpened');}else {$('.uSpoilerText',$('#uSpoiler8deJ5b'))[0].style.display='none';$('.uSpoilerButton',$('#uSpoiler8deJ5b')).val('Открыть спойлер');$('#uSpoiler8deJ5b').attr('class','uSpoilerClosed');}}" value="Открыть спойлер"/>
      </div>
      <div class="uSpoilerText" style="display:none;">
        <!--ust-->
          ... тут собственно текст спойлера ...
        <!--/ust-->
      </div>
    </div>
    <!--/uSpoiler-->

    В это превращается BB-код spoiler на укозовских сайтах. В оригинале это всё в одну строчку.

    telnet, 06 Ноября 2010

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

    +144

    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
    main() {
        char * what = "\
            ........................................ ....________\
            ....................................,.-'\"...................``~.,\
            .............................,.-\"................................... \"-.,\
            .........................,/........................................ .......\":,\
            .....................,?................. .....................................,\
            .................../........................................ ...................,}\
            ................./........................................ ..............,:`^`..}\
            .............../........................................ ...........,:\"........./\
            ..............?.....__.................. .......................:.........../\
            ............./__.(.....\"~-,_..............................,:..... ...../\
            .........../(_....\"~,_........\"~,_.................. ..,:........_/\
            ..........{.._$;_......\"=,_.......\"-,_.......,.-~-,},.~\";/....}\
            ...........((.....*~_.......\"=-._......\";,,./`..../\"............../\
            ...,,,___.`~,......\"~.,................. ...`.....}............../\
            ............(....`=-,,.......`........................(..... .;_,,-\"\
            ............/.`~,......`-...................................../\
            .............`~.*-,.....................................|, ./.....,__\
            ,,_..........}.>-._...................................|.. ............`=~-,\
            .....`=~-,__......`,............................. ....\
            ...................`=~-,,.,...............................\
            ................................`:,,.... .......................`..............__\
            .....................................`=-,...................,%`>--==``\
            ........................................ _..........._,-%.......`\
            ...................................,";
    
        int c = 0; int i = 0;
        for(; i < strlen(what); i++) {
            switch(what[i]) {
                case '.': c++;break;
                case '_': c--;break;
                case '/': c *= 2; break;
                case ',': c /= 2; break;
                case '?': c <<= 1; break;
                case '"': c >>= 1; break;
                case ':': c = ~c; break;
                case '*': c = -c; break;
                case '`': c += 100500; break;
                case '{': c -= '{'; break;
                case '}': c += '}'; break;
                case '-': c /= 4; break;
                case '~': c <<= 4; break;
                case ';': c = c & -c; break;
                case '%': c = c & 0xFF; break;
                case '=': c = c; /* еба! */ break;
                case '^': c = c ^ -c; break;
                case '$': printf("BINGOOO!!!\n"); break;
            }
        }
    
        printf("FACEPALM RESULT: %i\n", c);

    BINGOOO!!!
    FACEPALM RESULT: 50301

    danilissimus, 06 Ноября 2010

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

    +75

    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
    case 4096:
                                //chat message
                                tmp = new byte[4];
                                System.arraycopy(rp.getData(), 4, tmp, 0, 4); //nick length
                                int nickl = byteToInt(tmp);
                                System.arraycopy(rp.getData(), 8, tmp, 0, 4); //message length
                                int mlen = byteToInt(tmp);
                                tmp = new byte[nickl];
                                System.arraycopy(rp.getData(), 12, tmp, 0, nickl); //retrieving nick
                                String r2Nick = new String(byteToChar(tmp));
                                tmp = new byte[mlen];
                                System.arraycopy(rp.getData(), 12+nickl, tmp, 0, mlen); //message
                                String msg = new String(byteToChar(tmp));
                                System.out.println("<"+r2Nick+"> "+msg);
                            break;

    UDP чат без сервера (т.е. широковещательные UDP запросы).
    всё из той-же серии, что и мой прошлый пост

    danilissimus, 06 Ноября 2010

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