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

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

    −102

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    flagnum=Isnumeric(pSum$) 'сумма к погашению
    If flagnum=False Then
    	If Instr(pSum$,",")=0 Then
    		flagnum1$=Strleft(pSum$,".")
    		flagnum2$=Strrightback(pSum$,".")
    		pSum$=flagnum1$&","&flagnum2$
    	Else
    		flagnum1$=Strleft(pSum$,",")
    		flagnum2$=Strrightback(pSum$,",")
    		pSum$=flagnum1$&"."&flagnum2$
    	End If
    End If

    LotusScript
    Преобразования строкового представления числа в число. При входе "0" на выходе строка ".", которая пытается безусловно быть преображена в число.

    Dimly, 25 Ноября 2010

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

    +78

    1. 1
    2. 2
    3. 3
    double price=199990.10;
    BigDecimal realPrice=new BigDecimal(price).round(
    		new MathContext((int)Math.round(Math.log10(price))+3)));

    Округление до копеек.
    Реальный финансовый проект.

    gavnokoder, 24 Ноября 2010

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    //Set different text depending on how long on progressbar progress is
    if (dwStepPercent < 25)
        byText=0;
    else if (dwStepPercent < 50)
        byText=1;
    else if (dwStepPercent < 75)
        byText=2;
    else
        byText=3;

    Отличный способ не делить.

    Shumway, 23 Ноября 2010

    Комментарии (2)
  5. Куча / Говнокод #4688

    +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
    Hello, DooMer!
    
    Это письмо было выслано вам по запросу на восстановление пароля на сайте Говнокод.ру
    (если вы не запрашивали восстановление пароля, просто удалите это письмо)
    
    Для смены пароля пройдите по этой ссылке:
    http://govnokod.ru/user/recover?code=b3ce368189242ab2690203d1571c6974
    (ссылка будет работать в течение суток)
    
    
    
    С уважением, Ваш Говнокод.

    Восстановление забытого пароля на govnokod.ru

    DooMer, 19 Ноября 2010

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

    +78

    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
    package com.fl.nat;
    
    import java.io.File;
    
    public class Status {
        static {
            System.load(new File("libstatus-remote.dll").getAbsolutePath());
        }
        
        public native int testLoaded();
        private native String listProcessess0();
    
        public SystemProcess[] listProcessess() {
            String proc = this.listProcessess0();
            String[] procs = proc.split(";");
    
            SystemProcess[] list = new SystemProcess[procs.length];
    
            int count = 0;
            for(String s : procs) {
                list[count++] = new SystemProcess(s.split(",")[0], Integer.parseInt(s.split(",")[1]));
            }
            
            return list;
        }
    }

    говнокодовость станет понятка как только я выложу C++ часть этого говна

    danilissimus, 19 Ноября 2010

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

    +155

    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
    if(!CModule::IncludeModule("iblock")) return;
    		
    		$ID_PRODUCT = $_POST['prod_id'];
    		$ID_USER = $USER->GetID();
    		$TEXT = $_POST['txt'];
    		$IBLOCK_ID = $_POST['iblock_id'];
    		$NAME = "Отзыв";
    		
    		$arPROPS = Array(
    			"ID_PRODUCT" => $ID_PRODUCT,
    			"ID_USER" => $ID_USER,
    			"TEXT" => $TEXT,
    		);
    		
    		$arFields = Array(
    			"IBLOCK_ID"=>$IBLOCK_ID,
    			"NAME"=>$NAME,
    			"PROPERTY_VALUES" => $arPROPS,
    		);
    		print_r ($arFields);
    		$e = new CIBlockElement;
    		if (!$e->Add($arFields,false,true,false)) {
    			echo "Error: ".$e->LAST_ERROR;
    		}
    		else {
    			echo "Всё ништяк";
    		}
    -------------------------------------------------------------------
    Возвращается:
    ----------------------------------------------------------------
    Array
    (
        [IBLOCK_ID] => 5
        [NAME] => Отзыв
        [PROPERTY_VALUES] => Array
            (
                [ID_PRODUCT] => 119
                [ID_USER] => 1
                [TEXT] => kdfkja
            )
    
    )
    Всё ништяк
    ----------------------------------------------------------------
    Создаётся новая запись, но почему-то в свойстве TEXT одна левая буква какая-то, ничо понять не могу(((

    minnigaliev-r, 19 Ноября 2010

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

    −122

    1. 1
    2. 2
    ALTER TABLE [dbo].[IssueGroup]  WITH CHECK ADD  CONSTRAINT [FK_IssueGroup_Group] FOREIGN KEY([ProjectId], [GroupId])
    REFERENCES [dbo].[Group] ([GroupId],[ProjectId])

    Часа 2 искал проблему в чужом коде - оказалось, что просто поля ProjectId и GroupId были записаны в разных порядках сначала FOREIGN KEY([ProjectId], [GroupId]), а потом REFERENCES [dbo].[Group] ([GroupId],[ProjectId]).

    vadimliman, 16 Ноября 2010

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

    +115

    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
    private string ContentTransformation(string _xmlContent, string _xsltScheme)
            {
                try
                {
                    XmlReaderSettings xmlRS = new XmlReaderSettings();
                    XPathDocument doc = new XPathDocument(XmlReader.Create(new StringReader(_xmlContent), xmlRS));
                    XPathNavigator nav = doc.CreateNavigator();
                    XmlReader reader = XmlReader.Create(new StringReader(nav.OuterXml));
                    reader.MoveToContent();
    
                    System.IO.StringReader strRead = new StringReader(_xsltScheme);
    
                    XslCompiledTransform xslt = new XslCompiledTransform();
                    xslt.Load(XmlReader.Create(strRead));
    
                    // Transform the node fragment. 
                    StringWriter strW = new StringWriter();
                    XmlWriterSettings wrSet = new XmlWriterSettings();
                    wrSet.ConformanceLevel = ConformanceLevel.Auto;
                    XmlWriter xmlW = XmlWriter.Create(strW, wrSet);
    
                    xslt.Transform(reader, xmlW);
                    xmlW.Close();
    
                    return strW.ToString();
                }
                catch (ArgumentNullException anEx)
                {
                    return "XSL преобразование не выполнено!<br>Параметр равен null.<br>" + anEx.Message;
                }
                catch (XsltException xsltEx)
                {
                    return "XSL преобразование не выполнено!<br>Проверте XSL схему.<br>" + xsltEx.Message;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }

    Учимся применять XSL шаблон к XML данным, и между делом поглядываем в сий гениальный шедевр - в нем вся истина о том, как четко и со вкусом, а главное элегантно выполнить эту задачу. Да еще и обработка ошибок сделана! Шикарный кусок.

    dreaktor, 14 Ноября 2010

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

    +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
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    private string makeUrlAbsolute(string url)
            {
                isWebPartPropertiesError = false;
                try
                {
                    if (!string.IsNullOrEmpty(url))
                    {
                        bool shouldCheckForRootWeb = false;
    
                        if (!url.StartsWith("http://"))
                        {
                            if (url.StartsWith("//")) throw new Exception("Неправильная ссылка");
                            if (!url.StartsWith("/")) url = url.Insert(0, "/");
                            url = url.Insert(0, SPContext.Current.Site.Url);
                            shouldCheckForRootWeb = true;
                        }
                        using (SPSite site = new SPSite(url))
                        {
                            using (SPWeb web = site.OpenWeb())
                            {
                                if (!url.Contains(web.Url)) isWebPartPropertiesError = true;
                                if (shouldCheckForRootWeb && site.Url.Equals(web.Url)) isWebPartPropertiesError = true;
                                return url;
                            }
                        }
                    }
                    else return "";
                }
                catch
                {
                    isWebPartPropertiesError = true;
                    return "";
                }
    
                //this.CatalogIconImageUrl = this.ClassResourcePath + "/Test.ico";
                //this.TitleIconImageUrl = this.ClassResourcePath + "/Test.ico";
            }

    Продолжаю серию мегаполезных хелперов.
    Эта страхолюдина найдена там же где и пред. кусок.
    Судя по названию, она должна делать урл абсолютным...
    (SPSite и др., это SharePoint API если кто не в курсе)

    dreaktor, 14 Ноября 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var Class = function () {
    	this.method = function () {
    		/* … */
    	};
    };
    
    Class = new Class();

    fuckyounoob, 13 Ноября 2010

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