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

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

    +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
    //Перевод в 2/10 систему
    BOOL
    CChannel::DecTo2Dec(UCHAR Dec,
    					CHAR *Dec2)
    {
    	TCHAR digitstring[10] = {0};
    	INT	Hi = 0;
    	INT	Lo = 0;
    
    	_stprintf_s(digitstring,TEXT("%d"),Dec);
    	INT digitstringLen = _tcslen(digitstring);
    	Lo = _ttoi(digitstring + 1);
    	*(digitstring + 1) = 0;
    	Hi = _ttoi(digitstring);
    	
    	if(digitstringLen>1)
    	{
    		*Dec2 = Lo + Hi * 0x10;
    	}
    	else
    		*Dec2 = Hi;
    	return TRUE;
    }

    Перевод в BCD через строку!

    azote, 27 Января 2012

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

    +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
    QSqlQueryModel model,model1,model2;
    ...
    model2.setQuery("SELECT * FROM cardInfoChange");
    while(model2.canFetchMore())
        model2.fetchMore();
    ...
     for(int i = 0; i < model2.rowCount(); i++)
            {
                QString t =  model2.record(i).value(1).toString().toUtf8()+
                        ";"+model2.record(i).value(2).toString().toUtf8()+";"+model2.record(i).value(3).toString().toUtf8()+
                        ";"+model2.record(i).value(4).toString().toUtf8()+
                        ";"+model2.record(i).value(5).toString().toUtf8()+
                        ";"+model2.record(i).value(6).toString().toUtf8()+
                        ";"+model2.record(i).value(7).toString().toUtf8()+
                        ";"+model2.record(i).value(8).toString().toUtf8()+
                        ";"+model2.record(i).value(9).toString().toUtf8()+
                        ";"+model2.record(i).value(10).toString().toUtf8()+
                        ";"+model2.record(i).value(11).toString().toUtf8()+
                        ";"+model2.record(i).value(12).toString().toUtf8()+
                        ";"+model2.record(i).value(13).toString().toUtf8()+
                        ";"+model2.record(i).value(14).toString().toUtf8()+
                        ";"+model2.record(i).value(15).toString().toUtf8()+
                        ";\n";
                f.write( t.toAscii());
            }

    Продолжаем стрелять по воробьям из пушки.

    Особое внимание на строки 4 и 5 так как QSqlQueryModel предназначена для вывода отображения в QTableView она не загружает все данные сразу а делает это постепенно.

    Ну и напоследок шедевральный способ записи полученных данных в файл.

    ir4y, 19 Января 2012

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

    +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
    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
    //так было до
    <?php
        // дневной/ночной фон
        $now=date("G");
        if (($now > 8) and ($now<21))
            {echo "странице задаётся дневной фон";}
        else
    	{echo "странице задаётся ночной фон";}
    
        //время на сервере	        
        echo date("Время на сервере H:i");
    
        //Выводятся знаменательные события в истории за этот день (ps: просто из папки events берётся фйл с названием $today
        $today=date("d_M");
        $event=file("event/$today");
        $line=count($event);
        echo "<center>",$event[rand(0,$line-1)],"</center>";
        $mon=explode("_",$today);
        $rus=array("Dec"=>"декабря");
        echo "<a href=\"http://ru.wikipedia.org/wiki/",$mon[0],"_",$rus[$mon[1]]>Подробнее о этом дне в Истории</a>";
    
        //история посещений
        $ip=$_SERVER['REMOTE_ADDR']." | ".date("d M H:i:s")."\n";
    ?>
    
    //так стало после
    <?php
        // дневной/ночной фон
        $now=date("d_M_G:i:s");
        $time=explode("_",$now);
        $hour=explode(":",$time[2]);
        if (($hour[0] > 8) and ($hour[0]<21))
            {echo "странице задаётся дневной фон";}
        else
            {echo "странице задаётся ночной фон";}
    
        //время на сервере
        echo "Время на сервере ",$hour[0],":",$hour[1];
    
        //Выводятся знаменательные события в истории за этот день (ps: просто из папки events берётся фйл с названием $today
        $today=$time[0]." ".$time[1];
        $event=file("event/$today");
        $line=count($event);
        echo "<center>",$event[rand(0,$line-1)],"</center>";
        $rus=array("Dec"=>"декабря");
        echo "<a href=\"http://ru.wikipedia.org/wiki/",$time[0],"_",$rus[$time[1]]>Подробнее о этом дне в Истории</a>"; 
    
        //история посещений
        $ip=$_SERVER['REMOTE_ADDR']." | ".$now."\n";
    ?>

    Так сказать попытка оптимизировать код. Был первый вариант, где функция date использовалась 4 раза с разными параметрами.
    Ну и я решил свести всё к одной date... уж и не знаю... был ли смысл) быстрее ли от этого всё будет работать...))

    Vladis_s, 17 Декабря 2011

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

    +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
    <?php
    $lst=array();
    $ip_list="http://netelis.hmsite.net/loc.txt";
    $list_ip = file_get_contents($ip_list);
    if($list_ip==FALSE){ printf("Can't open file<br>\n");exit(1);}
    preg_match_all("|(?:[1-9][0-9]{0,2})\.(?:\d{1,3})\.(?:\d{1,3})\.(?:\d{1,3})|",$list_ip,$ipl);
    $i=0;
    foreach($ipl[0] as $address){
            $lst[$i++]=$address;
            $lst[$i-1].="<br />";
    }
    $lst=array_unique($lst);
    printf("Max element %d<br>\n",sizeof($lst));
    $slst=natsort($lst);
    print_r($lst);
    ?>

    Извлекает список IP-адресов, сортирует и удаляет повторяющиеся

    AliceGoth, 17 Декабря 2011

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Strip out the embedded timestamp
    if ( ! preg_match("/(\d+TS--->)/", $cache, $match))
    {
      return FALSE;
    }
    
    // Has the file expired? If so we'll delete it.
    if (time() >= trim(str_replace('TS--->', '', $match['1'])))
    {
    ...

    CodeIgniter → System → Core → Output.php
    Это чтение временной метки в кэш-файле. Почему бы в регулярке в "карман" не взять только \d+?

    Andretti, 10 Декабря 2011

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

    +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
    // Крон скрипт
    set_time_limit(0);
    ini_set('memory_limit', 2548576000);
    
    // проверим запущен ли скрипт
    $shell_script = __FILE__;
    $grep_name = substr(basename($shell_script), 0, -4);
    exec("ps ax | grep {$grep_name} | grep -v grep | grep -v flock", $process);
    
    if (count($process) > 1) {
        die("\n Ошибка! Еще не отработал запущенный ранее скрипт! \n");
    }
    
    
    //... код клонирования базы с миллонами строк

    Halfi, 09 Декабря 2011

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

    +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
    notify: function(evt) {
    	var state = this.prevFirst === null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev');
    
    	// Load items
    	this.callback('itemLoadCallback', evt, state);
    
    	if (this.prevFirst !== this.first) {
    		this.callback('itemFirstInCallback', evt, state, this.first);
    		this.callback('itemFirstOutCallback', evt, state, this.prevFirst);
    	}
    
    	if (this.prevLast !== this.last) {
    		this.callback('itemLastInCallback', evt, state, this.last);
    		this.callback('itemLastOutCallback', evt, state, this.prevLast);
    	}
    
    	this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast);
    	this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last);
    },

    Популярный jQuery плагин - "jCarousel"
    http://sorgalla.com/projects/jcarousel/

    2 часа пытался реализовать инициализацию элементов "конвеера" до появления их на экране.
    Но не тут-то было. Все 7 событий, регулирующих смену позиции - вызываются в один момент времени (при занятии элементом итогового положения).
    • itemLoadCallback
    • itemFirstInCallback
    • itemFirstOutCallback
    • itemLastInCallback
    • itemLastOutCallback
    • itemVisibleInCallback
    • itemVisibleOutCallback

    *this.callback сводится до fn.call()

    Centry, 06 Декабря 2011

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

    +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
    $t2 = db_query("SELECT
          			COUNT(*)
      			FROM
         			order_delivery_offers AS odf,
         			uc_orders AS uo
      			WHERE
         			odf.order_id = uo.order_id AND
         			uo.uid = $uid AND
         			uo.order_status = 'accepted' AND
         			odf.status = 'accepted' AND
         			odf.visible = 1 AND
         			odf.active = 1
      			GROUP BY odf.order_id");
      $count_rows2 = 0;
      while ($r2 = db_fetch_array($t2)){
    		$count_rows2++;
      }

    Подсчет количества записей в запросе.

    beertudam, 04 Декабря 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected $_never_allowed_regex = array(
    					"javascript\s*:"			=> '[removed]',
    					"expression\s*(\(|&\#40;)"	=> '[removed]', // CSS and IE
    					"vbscript\s*:"				=> '[removed]', // IE, surprise!
    					"Redirect\s+302"			=> '[removed]'
    	);

    Это не разу не ковнокод, но строкой с // IE, surprise! не поделится, не смог)

    ЗЫ. это CodeIgniter 2.0.3 класс Security, строка 52

    Zerstoren, 02 Декабря 2011

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

    +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
    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
    private function isBonusAddOK($code,$ffStr)
    	{
    		switch($code)
    		{
    			case 1:if(
    						($this->isBFFOK($ffStr,40) || $this->isBFFOK($ffStr,38) || $this->isBFFOK($ffStr,37)) && 
    						$this->isBFFOK($ffStr,24) && $this->isBFFOK($ffStr,19) &&
    						($this->isBFFOK($ffStr,42) || $this->isBFFOK($ffStr,43) || $this->isBFFOK($ffStr,44))
    						)return true;return false;
    						
    			case 6:if(
    						($this->isBFFOK($ffStr,40) || $this->isBFFOK($ffStr,38) || $this->isBFFOK($ffStr,37)) && 
    						$this->isBFFOK($ffStr,24) && $this->isBFFOK($ffStr,20) &&
    						($this->isBFFOK($ffStr,42) || $this->isBFFOK($ffStr,43) || $this->isBFFOK($ffStr,44))
    						)return true;return false;
    						
    			case 11:if(
    						$this->isBFFOK($ffStr,24) &&
    						($this->isBFFOK($ffStr,16) || $this->isBFFOK($ffStr,358) || $this->isBFFOK($ffStr,360) || $this->isBFFOK($ffStr,361)) && 
    						$this->isBFFOK($ffStr,62) &&
    						($this->isBFFOK($ffStr,64) || $this->isBFFOK($ffStr,352) || $this->isBFFOK($ffStr,356) || $this->isBFFOK($ffStr,363)) &&
    						($this->isBFFOK($ffStr,3) || $this->isBFFOK($ffStr,4) || $this->isBFFOK($ffStr,5))
    						)return true;return false;
    						
    			case 14:if(
    						$this->isBFFOK($ffStr,24) &&
    						($this->isBFFOK($ffStr,16) || $this->isBFFOK($ffStr,358) || $this->isBFFOK($ffStr,360) || $this->isBFFOK($ffStr,361)) && 
    						$this->isBFFOK($ffStr,61) &&
    						($this->isBFFOK($ffStr,64) || $this->isBFFOK($ffStr,352) || $this->isBFFOK($ffStr,356) || $this->isBFFOK($ffStr,363)) &&
    						($this->isBFFOK($ffStr,3) || $this->isBFFOK($ffStr,4) || $this->isBFFOK($ffStr,5))
    						)return true;return false;
    			
    			case 17:if(
    						($this->isBFFOK($ffStr,16) || $this->isBFFOK($ffStr,358) || $this->isBFFOK($ffStr,360) || $this->isBFFOK($ffStr,361)) && 
    						($this->isBFFOK($ffStr,64) || $this->isBFFOK($ffStr,352) || $this->isBFFOK($ffStr,356) || $this->isBFFOK($ffStr,363)) &&
    						($this->isBFFOK($ffStr,3) || $this->isBFFOK($ffStr,4) || $this->isBFFOK($ffStr,5)) &&
    						$this->isBFFOK($ffStr,17)
    						)return true;return false;
    			
    			case 20:if(
    						($this->isBFFOK($ffStr,16) || $this->isBFFOK($ffStr,358) || $this->isBFFOK($ffStr,360) || $this->isBFFOK($ffStr,361)) && 
    						($this->isBFFOK($ffStr,64) || $this->isBFFOK($ffStr,352) || $this->isBFFOK($ffStr,356) || $this->isBFFOK($ffStr,363)) &&
    						($this->isBFFOK($ffStr,3) || $this->isBFFOK($ffStr,4) || $this->isBFFOK($ffStr,5)) &&
    						$this->isBFFOK($ffStr,25) && $this->isBFFOK($ffStr,21)
    						)return true;return false;
    						
    			case 23:if(
    						($this->isBFFOK($ffStr,16) || $this->isBFFOK($ffStr,358) || $this->isBFFOK($ffStr,360) || $this->isBFFOK($ffStr,361)) && 
    						($this->isBFFOK($ffStr,64) || $this->isBFFOK($ffStr,352) || $this->isBFFOK($ffStr,356) || $this->isBFFOK($ffStr,363)) &&
    						($this->isBFFOK($ffStr,3) || $this->isBFFOK($ffStr,4) || $this->isBFFOK($ffStr,5)) &&
    						$this->isBFFOK($ffStr,21)
    						)return true;return false;
    						
    						
    		.... еще куча строк до значения 88
    			
    			default: return true;
    		}
    	}
    	
    	private function isBFFOK($ffStr,$pos)
    	{
    		$val = substr($ffStr,$pos,1);//echo $pos.':'.$val;var_dump(($val != '0'));echo ' ';
    		return ($val != '0');
    		/*if($val == 0)return false;

    ИфЗебок

    kyzi007, 02 Декабря 2011

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