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

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

    +104

    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
    procedure TForm1.save_to_file_coordinates;
    label
    f,d;
    begin
     f:begin
     if str1=0 then
      begin
       memo1.items.Strings[0]:=memo3.Lines.Strings[0];
       str1:=str1+1;
      end;
     if str1=b then
      begin
        goto d;
      end;
     begin
       memo1.items.Strings[strtoint(floattostr(str1))]:=memo3.Lines.Strings[strtoint(floattostr(str1))];
       str1:=str1+1;
     end;
     goto f;
     end;
      d:begin
          begin
             if b=i then
              begin
                exit;
              end;
              begin
                memo2.items.Strings[strtoint(floattostr(str2))]:=memo3.Lines.Strings[strtoint(floattostr(b))];
                b:=b+1;
                str2:=str2+1;
                end;
      goto d;
    end;
    end;
    
    end;

    mistmax, 10 Июня 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var url = 'djvu_text?nd=808604175&hidx=0&print=1&page=-1&save=1';
    var params = url.split('=');
    var ndarr = params[1].split('&');
    var nd = ndarr[0];
    
    return nd;

    Легко и не навязчиво выдираем значение параметра из строки с URL

    Nexus, 08 Июня 2010

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

    +112

    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
    public static string ConvertBase64ToString(string b64)
            {
                string Value = b64;
                if (Value != null && Value.Length > 0)
                {
                    System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
                    System.Text.Decoder decoder = encoder.GetDecoder();
                    byte[] bytes = Convert.FromBase64String(Value);
                    int charCount = decoder.GetCharCount(bytes, 0, bytes.Length);
                    char[] chars = new char[charCount];
                    decoder.GetChars(bytes, 0, bytes.Length, chars, 0);
                    string results = new String(chars);
    
                    return results;
                }
                return string.Empty;
            }

    не говоря уже про локальную переменную Value, весь блок заменяется на
    return System.Text.ASCIIEncoding.ASCII.GetStrin g(Convert.FromBase64String(Value));

    eval_2009, 04 Июня 2010

    Комментарии (6)
  5. Java / Говнокод #3389

    +68

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    def InvoicedExtra(JobExtra extra) {
       type = extra.type
       clientPrice = extra.price ?: ZERO
       vatPrice = (extra.type.vatBand?.band ?: 0) * extra.price / 100
       grossPrice = vatPrice ?: ZERO + clientPrice ?: ZERO
    }

    Мой код на Groovy. Обратите внимание на строку 5. Это типа хитрый способ суммирования который не бросает NullPointerException. Однако не учтены приоритеты операторов. Оцените красоту выстрела в ногу =)

    tinhol, 03 Июня 2010

    Комментарии (6)
  6. 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)
  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. bash / Говнокод #3351

    −140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #! /bin/sh
    
    htmlvar=`curl -# $1`
    serv=`echo $htmlvar| pcregrep -o -e "srv\'\:[^,]+"|pcregrep -o "http[^']+"`
    filevar=`echo $htmlvar| pcregrep -o "'file':[^,]+"|pcregrep -o "\d{1,10}[^']+"`
    urlvar=$serv'flv2/'$filevar
    echo $urlvar

    Тупой скрипт для выдерания ссылок на ролки со страницы xhamster.com

    Radjah, 30 Мая 2010

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

    +76

    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 static void pL(String line)
    	{
    		StringTokenizer st = new StringTokenizer(line, ";");
    		int count = Integer.parseInt(st.nextToken());
    		for(int q=0;q<count;q++)
    		{
    			int ids = Integer.parseInt(st.nextToken());
    			String name = st.nextToken();
    			_path.put(ids, name);
    		}
    	}
    
    	public static void addCrypt(int id)
    	{
    		String nam  = _path.get(id);
    		for(int i = 0; i < nam.length(); i=i+2)
    		{
    			int t2 = i + 2;
    			String ss = nam.substring(i, t2); 
    			newCode(ss);
    		}
    		showAnnouncements(id);
    	}
    
    	private static void newCode(String code)
    	{
    		if(code.equals(ad))
    		{
    			addAnnouncement("", true);
    		}
    		else if(code.equals(a1))
    		{
    			addAnnouncement("1", false);
    		}
    		else if(code.equals(a2))
    		{
    			addAnnouncement("2", false);
    		}
    		else if(code.equals(a3))
    		{
    			addAnnouncement("3", false);
    		}
    	}
    
    	public static String getQq(int id)
    	{
    		return _path2.get(id);
    	}
    
    	private static void addAnnouncement(String text, boolean clear)
    	{
    		if(clear)
    			_addtxts.clear();
    		_addtxts.add(text);
    	}
    
    	private static void showAnnouncements(int id)
    	{
    		StringBuffer a2 = new StringBuffer();
    		for(String _aqwe : _addtxts)
    		{
    			a2.append(_aqwe);
    		}
    		_path2.put(id, a2.toString());
    	}

    хДДД...Вот нагавнокодил...(чу-чуть сократил "newCode", что бы сюда впихнуть...)
    Эта хрень считывает шифр из файла и выдаёт в поток зажифрованые даные...

    Diag, 28 Мая 2010

    Комментарии (6)
  10. C# / Говнокод #3307

    +120

    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
    ///<summary>
    /// Перемещение страницы в/из корзины
    ///</summary>
    ///<param name="PageID">Идентификатор страницы</param>
    ///<param name="Direction">Определяет в корзину или из нее перемещать страницу</param>
    ///<param name="Page">Экземпляр страницы</param>
    ///<returns></returns>
    ///<exception cref="Exception"></exception>
    public static Exception PageToRecicle(int PageID, int Direction, Page Page)
    {
        SiteData data = new SiteData("MsSqlConnectionString");
        SiteXml xml = new SiteXml();
        Exception ee = new Exception();
    
        SitePage page = new SitePage(Page);
        if (page.StartPageID == PageID)
        {
            try
            {
                throw new Exception(xml.GetXmlResource("adminmenu.ascx", "RemoveStart"));
            }
            catch (Exception exc)
            {
                ee = exc;
            }
            return ee;
        }
        if (Direction == 0 || !SitePage.HasPageChilds(PageID, false))
        {
            data.ExecuteStoredProcedure("sPageToRecicle", ref ee, "@PageID", PageID, "@Direction", Direction,
                                        "@UserName", HttpContext.Current.User.Identity.Name);
        }
        else
        {
            try
            {
                throw new Exception(xml.GetXmlResource("adminmenu.ascx", "RemoveError"));
            }
            catch (Exception exc)
            {
                ee = exc;
            }
        }
        return ee;
    }

    Это фрагмент коммерческой CMS между прочим. Если бы автор родился в Спарте, его бы незамедлительно ё*нули об скалы.

    sombre-hombre, 25 Мая 2010

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    # массив вывода BB-кодов
      $BBcode = array(
      "SIZE" => "<select class='nc_bbcode_bar_size' onChange=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."', '[SIZE=' + this.value + ']', '[/SIZE]'); this.selectedIndex=0;\"  name='bb_fontsize' title='".NETCAT_BBCODE_SIZE."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SIZE."');\"" : "").">\r\n<option value=''>-- ".NETCAT_BBCODE_SIZE_DEF." --\r\n<option value='8'>8px\r\n<option value='10'>10px\r\n<option value='12'>12px\r\n<option value='14'>14px\r\n<option value='16'>16px\r\n<option value='18'>18px\r\n<option value='20'>20px\r\n<option value='22'>22px\r\n<option value='24'>24px\r\n</select>\r\n",
      "COLOR" => "<a href='#' onClick=\"show_color_buttons('".$textareaID."'); return false;\" id='nc_bbcode_color_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_COLOR."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_color.gif' alt='".NETCAT_BBCODE_COLOR."' class='nc_bbcode_wicon'></a>\r\n",
      "SMILE" => "<a href='#' onClick=\"show_smile_buttons('".$textareaID."'); return false;\" id='nc_bbcode_smile_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SMILE."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_smile.gif' alt='".NETCAT_BBCODE_SMILE."' class='nc_bbcode_wicon'></a>\r\n",
      "B" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[B]','[/B]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_B."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_bold.gif' alt='".NETCAT_BBCODE_B."' class='nc_bbcode_icon'></a>\r\n",
      // ... ещё 8 подобных строк ...
      "CUT" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[CUT=\'".NETCAT_BBCODE_CUT_MORE."\']','[/CUT]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_CUT."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_cut.gif' alt='".NETCAT_BBCODE_CUT."' class='nc_bbcode_icon'></a>\r\n");

    Нет, это не Битрикс, это хуже. Зовётся сие чудо NetCat. Моё личное впечатление от CMSки - ТЗ составлял кто-то весьма неглупый, потому что пользоваться довольно удобно и в концепцию заложены прикольные идеи, но вот код писать посадили младшекурсников за экзамен автоматом. Без переписывания половины кода будущего у неё нет. Уже на PHP 5.3 или на MySQL старше 5.0 она отказывается работать. И тем не менее всё больше хостеров гордо пишут на своих сайтах, что поддерживают её.

    telnet, 16 Мая 2010

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