1. C++ / Говнокод #18182

    +142

    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        String Stroka, Str;
        int DlinnaStroki, Position, Schetchik, i , j , x;
    
        Stroka=Edit1->Text;
        DlinnaStroki = Stroka.Length();
        String SimvolRazdelitel=" ";
    
        //модификация строки для добавления последнего слова
        Stroka = Stroka + SimvolRazdelitel;
    
        //вычисляет количество пробелов в строке
        Schetchik = 1;
        for (x = 1; x < DlinnaStroki; x++)
        {
            if (Stroka[x] == *SimvolRazdelitel.c_str())
                Schetchik = Schetchik + 1;//количество разделительных символов
        }
    
        //разделяет строку по символу на слова
        for (j = 0; j < Schetchik; j++)
        {
            Position = Stroka.Pos(SimvolRazdelitel);//разделительный символ
            for (i = 1; i < Position; i++)
                Str = Str + Stroka[i];
            Stroka.Delete(1,Position);
            Memo1->Lines->Add(Str);//слово добавляется сюда
            Str = "";
        }
    }

    vr8h, 16 Мая 2015

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

    +142

    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
    String notE(double exp)
    {
        if (exp < 0.0001 && exp > 0)//положительное число
        {
            exp += 0.0001;
            String str = exp;
    //        str.c_str()[1] = ',';//принудительный децимальный сепаратор
            str.c_str()[5] = '0';
            return str;
        }
        
        if (exp > -0.0001 && exp < 0)//отрицательное число
        {
            exp -= 0.0001;
            String str = exp;
    //        str.c_str()[2] = ',';//принудительный децимальный сепаратор
            str.c_str()[6] = '0';
            return str;
        }
    
        return exp;//большие числа, либо ноль
    }

    Принудительно отменяет научный формат

    vr8h, 16 Мая 2015

    Комментарии (0)
  3. JavaScript / Говнокод #18180

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    }
                        if(selector.length!=0 && selector.charAt(0)=='z'){
                            $('html').find(selector.substr(1,selector.length))
                                .attr('value',value);
                        }

    проект-клондайк, пример с сегодняшнего коммита

    makc3d, 16 Мая 2015

    Комментарии (2)
  4. JavaScript / Говнокод #18179

    +143

    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
    } else if(hostname.indexOf('.google.')>-1){
    		/* Google */
    
    
    		if(hostname.startsWith('docs.google.') || hostname.startsWith('drive.google.')){
    			document.addEventListener('DOMContentLoaded', function() {
    				var target = document.querySelector('#drive_main_page [aria-live="assertive"]');
    
    				var observer = new MutationObserver(function(mutations) {
    					mutations.forEach(function(mutation) {
    						if(mutation.type == 'childList' &&
    							mutation.addedNodes.length == 1 &&
    							mutation.addedNodes[0].innerHTML.match(/\/\/support.google.com\/drive\/\?p=system_requirements"/)){
    							mutation.target.innerHTML = '';
    							observer.disconnect();
    						}
    					});
    				});
    
    				console.log('Google, please make sure your obfuscator does not change class names, so our patch continues working (or stop browser-sniffing as we both use and contribute to Blink!) - love, Opera.');
    				observer.observe(target, {childList: true, subtree:true});
    			}, false)
    
    			log('PATCH-1191, Still an "unsupported browser" according to Google');
    		}
    		if(hostname.startsWith('mail.google.')){
    			addCssToDocument2('div.n6 {display: block !important} table.cf.hX{display:inline-table}');//"more", labels
    			log('PATCH-1163, No "More" button in Gmail and misaligned labels');
    		}
    		if(hostname.startsWith('translate.google.')){
    			document.addEventListener('DOMContentLoaded',
    				function(){
    					var obj = '<object type="application/x-shockwave-flash" data="//ssl.gstatic.com/translate/sound_player2.swf" width="18" height="18" id="tts"><param value="//ssl.gstatic.com/translate/sound_player2.swf" name="movie"><param value="sound_name_cb=_TTSSoundFile" name="flashvars"><param value="transparent" name="wmode"><param value="always" name="allowScriptAccess"></object>';
    					var aud = document.getElementById('tts');
    					if(aud && aud instanceof HTMLAudioElement && aud.parentNode.childNodes.length == 1){
    						aud.parentNode.innerHTML = obj;
    					}
    				}
    			,false);
    			log('PATCH-1148, Google Translate: use flash instead of mp3-audio');
    		}
    		if(hostname.startsWith('www.google.') || hostname.startsWith('google.')){
    			addCssToDocument2('#prt {visibility:hidden}')
    			log('PATCH-1197, Hide Chrome ad from main Google page');
    		}
    		if(pathname.indexOf('hangouts')==-1){
    			var _newUA = navigator.userAgent.replace(/ ?OPR.[0-9.]*/, '');
    			Object.defineProperty(window.navigator, "userAgent", {
    				get: function() {return _newUA}
    			});
    
    			log('PATCH-1176, Navigation keys are not working on Google - hide Opera tag from userAgent for all sites except hangouts');
    		}
    	} else if(hostname.indexOf('.youtube.com')>-1){
    		addCssToDocument2('#movie_player { z-index: 100 !important; }');
    		log('PATCH-1185, youtube.com - show video above playlist');
    	}

    Кажется, кто-то продолжает есть меня, несмотря на колючки. Кто угадает, откуда этот код, тому ничего.

    kaktus, 16 Мая 2015

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

    +141

    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
    $page = strtoupper($_SERVER['REQUEST_URI']);
        if (strpos($page, "%D0%A2%D0%BE%D0%BF10")){
          echo "<li class=\"active\"><a  href=\"/%D0%A2%D0%BE%D0%BF10\">Топ-10</a></li>";
        } else {
          echo "<li><a href=\"/%D0%A2%D0%BE%D0%BF10\">Топ-10</a></li>";
        }
        if (strpos($page, "%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA")){
          echo "<li class=\"active\"><a  href=\"/%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA\">Трафик</a></li>";
        } else {
          echo "<li><a href=\"/%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA\">Трафик</a></li>";
        } 
        if (strpos($page, "%D0%9B%D0%B8%D0%B4%D0%B5%D1%80")) {
          echo "<li class=\"active\"><a  href=\"/%D0%9B%D0%B8%D0%B4%D0%B5%D1%80\">Лидер</a></li>";
        } else {
          echo "<li><a href=\"/%D0%9B%D0%B8%D0%B4%D0%B5%D1%80\">Лидер</a></li>";
        }

    ...а кроме того, в данном случае strtoupper бесполезен

    olvin, 15 Мая 2015

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

    +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
    void UPStr(char *str)
    {
        while (*str)
        {
            switch (*str)
            {
                case 'а': *str = 'А'; break;
                case 'б': *str = 'Б'; break;
                case 'в': *str = 'В'; break;
                case 'г': *str = 'Г'; break;
                case 'д': *str = 'Д'; break;
                case 'е': *str = 'Е'; break;
                case 'ё': *str = 'Ё'; break;
                case 'ж': *str = 'Ж'; break;
                case 'з': *str = 'З'; break;
                case 'и': *str = 'И'; break;
                case 'й': *str = 'Й'; break;
                case 'к': *str = 'К'; break;
                case 'л': *str = 'Л'; break;
                case 'м': *str = 'М'; break;
                case 'н': *str = 'Н'; break;
                case 'о': *str = 'О'; break;
                case 'п': *str = 'П'; break;
                case 'р': *str = 'Р'; break;
                case 'с': *str = 'С'; break;
                case 'т': *str = 'Т'; break;
                case 'у': *str = 'У'; break;
                case 'ф': *str = 'Ф'; break;
                case 'х': *str = 'Х'; break;
                case 'ц': *str = 'Ц'; break;
                case 'ч': *str = 'Ч'; break;
                case 'ш': *str = 'Ш'; break;
                case 'щ': *str = 'Щ'; break;
                case 'ъ': *str = 'Ъ'; break;
                case 'ы': *str = 'Ы'; break;
                case 'ь': *str = 'Ь'; break;
                case 'э': *str = 'Э'; break;
                case 'ю': *str = 'Ю'; break;
                case 'я': *str = 'Я'; break;
    
                case 'a': *str = 'A'; break;
                case 'b': *str = 'B'; break;
                case 'c': *str = 'C'; break;
                case 'd': *str = 'D'; break;
                case 'e': *str = 'E'; break;
                case 'f': *str = 'F'; break;
                case 'g': *str = 'G'; break;
                case 'h': *str = 'H'; break;
                case 'i': *str = 'I'; break;
                case 'j': *str = 'J'; break;
                case 'k': *str = 'K'; break;
                case 'l': *str = 'L'; break;
                case 'm': *str = 'M'; break;
                case 'n': *str = 'N'; break;
                case 'o': *str = 'O'; break;
                case 'p': *str = 'P'; break;
                case 'q': *str = 'Q'; break;
                case 'r': *str = 'R'; break;
                case 's': *str = 'S'; break;
                case 't': *str = 'T'; break;
                case 'u': *str = 'U'; break;
                case 'v': *str = 'V'; break;
                case 'w': *str = 'W'; break;
                case 'x': *str = 'X'; break;
                case 'y': *str = 'Y'; break;
                case 'z': *str = 'Z'; break;
            }
            ++str;
        }
    }

    vr8h, 15 Мая 2015

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

    +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
    <?
    for ($i = 1; $i <= 100; $i++) {
        $t1 = $i / 3;
        $t2 = $i / 5;
        if (preg_match("/\./", "$t1") == false && preg_match("/\./", "$t2") == false) {
            echo "FizzBuzz<br>";
        } else {
            if (preg_match("/\./", "$t1") == false) {
                echo "Fizz<br>";
            } else {
                if (preg_match("/\./", "$t2") == false) {
                    echo "Buzz<br>";
                } else {
                    echo "$i<br>";
                }
            }
        }
    }
    ?>

    ZF...

    Yshk, 15 Мая 2015

    Комментарии (2)
  8. Java / Говнокод #18175

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static class NoNullListMap<KEY, VALUES> extends HashMap<KEY, List<VALUES>> {
            @Override
            public List<VALUES> get(Object key) {
                List<VALUES> res = super.get(key);
                if (res == null) {
                    res = new ArrayList();
                    super.put((KEY) key, res);
                }
                return res;
            }
        }

    мапа, возвращающая пустые списки вместо null

    olegsemeniuk, 15 Мая 2015

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

    −407

    1. 1
    Autoresizing mask -> Autolayout -> Size classes -> "android layout" (на apple watch)

    Эволюция "автонастройки" размеров в iOS или что бывает если один раз нормально не сесть и подумать.

    Для тех кто не в теме - все вышеперечисленное может быть в одном проекте одновременно.

    Gerchicov-bp, 15 Мая 2015

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $phsms = '';
    
    for($p=0;$p<strlen($phonesms);$p++)
        if(intval($phonesms[$p]) >= 0) $phsms = $phsms.intval($phonesms[$p]);
    
    preg_match('/.*(9[0-9]{2})([0-9]{7})/', $phsms, $match2);
    
    $phsms = $match2[1].$match2[2];

    Валидируем телефоны.

    aego09, 15 Мая 2015

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