1. Python / Говнокод #23006

    +1

    1. 1
    2. 2
    if str(type(date))!="<class 'datetime.date'>":
        date=date.date()

    Решил перевести datetime.datetime в datetime.date

    peterder72, 10 Мая 2017

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

    −17

    1. 1
    2. 2
    #undef NULL
    #define NULL ((void *) 0xDEADBEEF)

    И все идиотские проверки типа:

    if (ptr && ptr->field == value) { do_something(); }

    идут лесом.

    codemonkey, 10 Мая 2017

    Комментарии (26)
  3. Pascal / Говнокод #22991

    −1413

    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
    function Unescape(const s: AnsiString): widestring;
    var
      i: Integer;
      j: Integer;
      c: Integer;
    begin
      // Make result at least large enough. This prevents too many reallocs
      SetLength(Result, Length(s));
      i := 1;
      j := 1;
      while i <= Length(s) do begin
        if s[i] = '\' then begin
          if i < Length(s) then begin
            // escaped backslash?
            if s[i + 1] = '\' then begin
              Result[j] := '\';
              inc(i, 2);
            end
            // convert hex number to WideChar
            else if (s[i + 1] = 'u') and (i + 1 + 4 <= Length(s))
                    and TryStrToInt('$' + string(Copy(s, i + 2, 4)), c) then begin
              inc(i, 6);
              Result[j] := WideChar(c);
            end else begin
              raise Exception.CreateFmt('Invalid code at position %d', [i]);
            end;
          end else begin
            raise Exception.Create('Unexpected end of string');
          end;
        end else begin
          Result[j] := WideChar(s[i]);
          inc(i);
        end;
        inc(j);
      end;
    
      // Trim result in case we reserved too much space
      SetLength(Result, j - 1);
    end;

    Это не вирус. Просто в Delphi 7 не завезли JSon.

    doctor_stertor, 07 Мая 2017

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

    +1411

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    counter++;
                        if (counter == 10)
                        {
                            Console.WriteLine();
                            counter = 0;
                        }

    Не сразу понял, что делает этот код.

    Langnasen_Dora, 07 Мая 2017

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

    −263

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Ответ = Вопрос("Будет запущена процедура создания договоров и печати документов. Продолжить?",
              РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да, ЗаголовокОкнаПредупреждения);
        
    Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
             Возврат;
    КонецЕсли;

    wezug, 05 Мая 2017

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

    −33

    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
    #include <http://govnokod.ru/21585>
    
    // assembly output for f1_signed and f2_signed on GCC 7,6,5 ... versions are same
    
    signed char f1_signed(signed char a1, signed char a2, signed char a3)
    {
      return MAXS(a1,a2,a3,a1,a2,a3);
    }
    
    signed char f2_signed(signed char a1, signed char a2, signed char a3)
    {
      return MAXS(a1,a2,a3);
    }
    
    // assembly output for f1_unsigned and f2_unsigned on GCC 7,6,5 ... versions are differend
    // GCC compiler can't do same simplification for unsigned function
    
    // This function produces much more assembler code than second
    unsigned char f1_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
    {
      return MAXS(a1,a2,a3,a1,a2,a3);
    }
    
    unsigned char f2_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
    {
      return MAXS(a1,a2,a3);
    }

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80574

    Очередной мой багрепорт в GCC. Компилятор GCC может заоптимизировать повторяющуйся в MAXS хрень для signed char, но не может для unsigned
    А вот Clang не может заоптимизировать ни то, ни другое. https://godbolt.org/g/7Kt9X0

    j123123, 30 Апреля 2017

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

    −11

    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
    Функция РазностьДатВДнях(Дата1, Дата2, ВключаяГраницы = Истина)
    	
    	Результат = ?(ВключаяГраницы, 1, 0);
    	Если Дата1 < Дата2 Тогда
    		ТекущаяДата = НачалоДня(Дата1);
    		ДатаОкончания = НачалоДня(Дата2);
    	Иначе
    		ТекущаяДата = НачалоДня(Дата2);
    		ДатаОкончания = НачалоДня(Дата1);
    	КонецЕсли;
    	Пока ТекущаяДата < ДатаОкончания Цикл
    		ТекущаяДата = НачалоДня(ТекущаяДата + 24 * 60 * 60);
    		Результат = Результат + 1;
    	КонецЦикла;
    	Возврат Результат;
    
    КонецФункции

    можно тремя строками заменить:
    ДатаНачала = Мин(НачалоДня(Дата1), НачалоДня(Дата2));
    ДатаОкончания = Макс(НачалоДня(Дата1), НачалоДня(Дата2));
    Возврат ?(ВключаяГраницы, 1, 0) + (ДатаОкончания - ДатаНачала) / 86400

    noncode, 17 Апреля 2017

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

    −99

    1. 1
    2. 2
    Если НоменклатураКонтрагентов.Наличие=Перечисления.ДаНет.Да тогда
    ....

    Создан новый элемент перечисления "ДаНет" на который ссылается измерение регистра сведений. Джордж Буль продолжает медленно крутиться...

    FesenkoA, 03 Апреля 2017

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

    −99

    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
    Процедура ДвиженияПоРегистрамНесортированнаяПродукция(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоПродукции, Отказ, Заголовок);
    
    	Если Не Отказ Тогда
    
    		Запрос = Новый Запрос;
    		Запрос.Текст = 
    			"ВЫБРАТЬ
    			|	ОтчетПроизводстваЗаСменуПродукция.Количество КАК Количество,
    			|	ОтчетПроизводстваЗаСменуПродукция.Номенклатура,
    			|	ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры
    			|ИЗ
    			|	Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
    			|ГДЕ
    			|	ОтчетПроизводстваЗаСменуПродукция.Ссылка = &Ссылка
    			|	И ОтчетПроизводстваЗаСменуПродукция.Номенклатура.АС_УчетНесортированнойПродукции = &ФлагДа";
    
    		Запрос.УстановитьПараметр("ФлагДа", Истина);
    		Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    		Результат = Запрос.Выполнить().Выгрузить();
    
    		НаборДвижений = Движения.АС_НесортированнаяПродукцияНаСкладах;
    		Если Результат.Количество()>0 Тогда
    			Для Каждого Стр ИЗ Результат Цикл
    				НоваяСтрока = НаборДвижений.Добавить();
    				НоваяСтрока.ВидДвижения = ВидДвиженияНакопления.Приход;
    				ЗаполнитьЗначенияСвойств(НоваяСтрока,Стр);
    				НоваяСтрока.Период = Дата;
    				НоваяСтрока.Регистратор = Ссылка;
    			КонецЦикла;
    		КонецЕсли;	
    	КонецЕсли;
    	
    КонецПроцедуры

    Нужно больше параметров! Иначе ты не адинэсник, а полное ничтожество. (Это не результат легаси, там реально скопипащено ПЯТЬ процедур с одинаковыми параметрами, из которых используется только "Отказ", да и то как видим - через заднепроходное отверстие)

    Old_Chroft, 31 Марта 2017

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

    −101

    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
    ВЫБОР
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 1
    		ТОГДА "01 Январь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 2
    		ТОГДА "02 Февраль"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 3
    		ТОГДА "03 Март"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 4
    		ТОГДА "04 Апрель"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 5
    		ТОГДА "05 Май"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 6
    		ТОГДА "06 Июнь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 7
    		ТОГДА "07 Июль"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 8
    		ТОГДА "08 Август"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 9
    		ТОГДА "09 Сентябрь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 10
    		ТОГДА "10 Октябрь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 11
    		ТОГДА "11 Ноябрь"
    	ИНАЧЕ "12 Декабрь"
    КОНЕЦ

    Конвертация

    spaceashot, 30 Марта 2017

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