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

    +53

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(;!isCancel(); [&]{
    			for(int i = 0; (i < settrings.getValue(Settings::Updater::Period, 60)) && !isCancel(); ++i)
    			{
    				Concurrency::wait(1000);
    			}}())
    			{

    laMer007, 13 Апреля 2015

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

    +163

    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
    if (in_array($id, $_SESSION['id']))
    {
    	for ($j = 0; $j < count($_SESSION['id']); $j++)
    	{
    		if ($_SESSION['id'][$j] == $id)
    		{ $num_el = $j;}
    	}
    
    		$_SESSION['count'][$num_el] += $count;
    		$_SESSION['summa'][$num_el] += $cost*1*$count;
    		$_SESSION['summa_all'] += $cost*1*$count;
    		$_SESSION['count_all'] += $count;
    }
    else
    {
    	$_SESSION['id'][] = $id;
    	$_SESSION['count'][] = $count;
    	$_SESSION['summa'][] = $cost*1*$count;
    	$_SESSION['summa_all'] += $cost*1*$count;		
    	$_SESSION['count_all'] += $count;	
    }

    Главное не забыть умножить на единицу

    roocster, 13 Апреля 2015

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

    −137

    1. 1
    2. 2
    3. 3
    4. 4
    Если НЕ ЗаполненНаОснованииДокумента Тогда
        ИнициализироватьУсловияПродаж();
    КонецЕсли;
    ИнициализироватьУсловияПродаж();

    Чтоб наверняка.
    Типовая УТ 11.1.10.94, документ РеализацияТоваровУслуг, модуль объекта, стр.819-822

    dawgcha, 13 Апреля 2015

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

    +130

    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
    // Заполняем датагрид
    var q = from i in currentData select new { i.IDRFData, i.IDRowData, i.Description, i.SumVal };
    dgMain.DataContext = q.ToList();
    
    // Получаем оттуда выделенный элемент
    object DR = dgMain.SelectedValue;
    
    var TypedData = Cast(DR, new
    {
    	IDRFData = default(Guid),
    	IDRowData = default(Guid),
    	Description = default(string),
    	SumVal = default(double),
    });
    
    // Кстати, функция Cast делает следующее:
    public static T Cast<T>(object obj, T type)
    {
    	return (T)obj;
    }

    Это извращение сделано вместо того, чтобы просто создать отдельный класс для записи датагрида.
    Я даже не представляю, в каком состоянии надо быть, чтобы такое написать.

    yamamoto, 13 Апреля 2015

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private void tbMain_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
    	TextBox thisTextBox = (sender as TextBox);
    	e.Handled = (!(Char.IsDigit(e.Text, 0) && !((thisTextBox.Text.IndexOf("-") == 0) && thisTextBox.SelectionStart == 0))) &&
    		((e.Text.Substring(0, 1) != "-") || (thisTextBox.Text.IndexOf("-") == 0) || thisTextBox.SelectionStart != 0) &&
    		((e.Text.Substring(0, 1) != ".") || (thisTextBox.Text.IndexOf(".") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(",") != -1))) &&
    		((e.Text.Substring(0, 1) != ",") || (thisTextBox.Text.IndexOf(",") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(".") != -1)));
    	
    }

    yamamoto, 13 Апреля 2015

    Комментарии (0)
  6. Pascal / Говнокод #17981

    +98

    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
    flag:=true;
    
    if keyList = nil then
    begin
    new(keyList);
    new(keylist^.HisTerms);
    new(keylist^.hisChapter);
    keyList^.value:= HashFunction(edit1.Text);
    keylist^.hisChapter^.number:=strtoint(edit2.Text);
    keylist^.HisTerms^.TheTerm:=edit1.Text;
    keylist^.HisTerms^.hisPage:=keylist^.hisChapter;
    keylist^.HisTerms^.hisKey:=keylist^.value;
    keylist^.hisChapter^.nextPage:=nil;
    keylist^.HisTerms^.nextTerm:=nil;
    memo1.Lines.Add(edit1.Text + ' (' + edit2.Text+')');
    end
    else
    begin
    keyTemp:=keylist;
    temp:=HashFunction(edit1.Text);
    if keytemp^.value = temp then
    begin
    termtemp:=keytemp^.HisTerms;
    chaptertemp:=keytemp^.hisChapter;
    while termtemp^.nextTerm<> nil do
    termtemp:=termtemp^.nextTerm;
    while chaptertemp^.nextPage<> nil do
    chaptertemp:=chaptertemp^.nextPage;
    new(termtemp^.nextTerm);
    new(chaptertemp^.nextPage);
    chaptertemp^.nextPage^.number:=strtoint(edit2.Text);
    termtemp^.nextTerm^.TheTerm:=edit1.Text;
    termtemp^.nextTerm^.nextTerm:=nil;
    chaptertemp^.nextPage^.nextPage:=nil;
    termtemp^.hisKey:=HashFunction(edit1.Text);
    termtemp^.hisPage:=chaptertemp^.nextPage;
    flag:=false;
    end
    else
    keytemp:=keytemp^.NextKey;
    if not(flag) then
    begin
    keytemp:=keylist;
    while keytemp^.NextKey<>nil do
    keytemp:=keytemp^.NextKey;
    new(keytemp^.NextKey);
    new(keytemp^.NextKey^.HisTerms);
    new(keytemp^.NextKey^.hisChapter);
    keytemp^.NextKey.value:=HashFunction(edit1.Text);
    keytemp^.NextKey^.hisChapter^.nextPage:=nil;
    keytemp^.NextKey^.HisTerms^.nextTerm:=nil;
    keytemp^.NextKey^.hisChapter^.number:=strtoint(edit2.Text);
    keytemp^.NextKey^.HisTerms^.TheTerm:=edit1.Text;
    keytemp^.NextKey^.HisTerms^.hisPage:=keytemp^.NextKey^.hisChapter;
    keytemp^.NextKey^.HisTerms^.hisKey:=HashFunction(edit1.Text);
    
    end;

    Создание хэш-таблицы терминов и добавление каждому термину под-термина.

    Toha, 12 Апреля 2015

    Комментарии (499)
  7. SQL / Говнокод #17980

    −161

    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
    $iq = tep_db_query('/* Вывод детальной информации по заданному неоригинальному изделию (ART_ID) */
    					/* Общая информация об изделии */
    					/*	ART_ARTICLE_NR - Номер артикула */
    					/*	SUP_BRAND - Название производителя изделия */
    					/*	ART_COMPLETE_DES_TEXT - Описание изделия */
    					SELECT
    						ART_ID,
    						ART_ARTICLE_NR,
    						ART_SEARCH_NR,
    						SUP_BRAND,
    						TD_DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT,
    						products_id,
    						products_price,
    						products_quantity
    					FROM
    					   TD_ARTICLES
    						INNER JOIN TD_DESIGNATIONS ON TD_DESIGNATIONS.DES_ID = ART_COMPLETE_DES_ID
    						INNER JOIN TD_DES_TEXTS ON TD_DES_TEXTS.TEX_ID = TD_DESIGNATIONS.DES_TEX_ID
    						INNER JOIN TD_SUPPLIERS ON SUP_ID = ART_SUP_ID
    					    JOIN products ON products_search_art = ART_SEARCH_NR
    					    JOIN td_suppliers_to_price ON products_brand = stp_price_brand AND products_price_id = stp_price_id AND ART_SUP_ID = stp_td_sup_id
    					WHERE
    						ART_ID = '.$art['LA_ART_ID'].' AND
    						TD_DESIGNATIONS.DES_LNG_ID = 16; ');

    "Отправлю ка я в СУБД немного комментариев, чтобы ему было проще разобраться что тут происходит"

    CyberKiller, 12 Апреля 2015

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

    +85

    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
    private boolean isWrapper(Class<?> candidateWrapperClass) {
    
    		return candidateWrapperClass.equals(Byte.class) ? true
    				: candidateWrapperClass.equals(Boolean.class) ? true
    						: candidateWrapperClass.equals(Character.class) ? true
    								: candidateWrapperClass.equals(Short.class) ? true
    										: candidateWrapperClass
    												.equals(Integer.class) ? true
    												: candidateWrapperClass
    														.equals(Long.class) ? true
    														: candidateWrapperClass
    																.equals(Float.class) ? true
    																: candidateWrapperClass
    																		.equals(Double.class) ? true
    																		: false;
    	}

    Просто метод для проверки, является ли класс оберткой примитива.
    Отсюда https://github.com/mtedone/podam/blob/master/src/main/java/uk/co/jemos/podam/api/PodamFactoryImpl.java

    zazazazazaza, 12 Апреля 2015

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

    +138

    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
    if(argc > 6){
    	for(arg = argv[6]; strlen((char *)arg) >= 17 &&
    					isdigit(arg[0]) &&
    					isdigit(arg[1]) &&
    					isdigit(arg[3]) &&
    					isdigit(arg[4]) &&
    					isdigit(arg[6]) &&
    					isdigit(arg[7]) &&
    					isdigit(arg[9]) &&
    					isdigit(arg[10]) &&
    					isdigit(arg[12]) &&
    					isdigit(arg[13]) &&
    					isdigit(arg[15]) &&
    					isdigit(arg[16])
    					; arg+=18){
    
    		int t1, t2;
    		struct period *sp;
    
    		t1 = (arg[0] - '0') * 10 + (arg[1] - '0');
    		t1 = (t1 * 60) + (arg[3] - '0') * 10 + (arg[4] - '0');
    		t1 = (t1 * 60) + (arg[6] - '0') * 10 + (arg[7] - '0');
    		t2 = (arg[9] - '0') * 10 + (arg[10] - '0');
    		t2 = (t2 * 60) + (arg[12] - '0') * 10 + (arg[13] - '0');
    		t2 = (t2 * 60) + (arg[15] - '0') * 10 + (arg[16] - '0');
    		if(t2 < t1) break;
    		sp = myalloc(sizeof(struct period));
    		if(sp){
    			sp->fromtime = t1;
    			sp->totime = t2;
    			sp->next = acl->periods;
    			acl->periods = sp;
    		}
    		if(arg[17]!=',') break;
    	}
    }

    Получение временных диапазонов, из https://github.com/z3APA3A/3proxy/blob/devel/src/3proxy.c#L1470
    Основное говно в том, что нифига не проверяются входные данные т.е. секунд и минут может быть больше 59, а часов может быть больше 23. И проверку if(t2 < t1) лучше заменить на if(t2 <= t1)
    А еще там в том исходнике в качестве отступов используются и пробелы и табы. Вообще там очень много говнокода

    j123123, 12 Апреля 2015

    Комментарии (5)
  10. Python / Говнокод #17977

    −124

    1. 1
    2. 2
    3. 3
    if __name__ == "__main__":
        def f():
            pass

    Динамичненько

    xyilka, 11 Апреля 2015

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