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

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ТекЧас = Строка(Час(Дата2));
    ТекЧас = Прав("00" + ТекЧас, 2);
    ТекМин = Строка(Минута(Дата2));
    ТекМин = Прав("00" + ТекМин, 2);
    ТекВремя = ТекЧас + ":" + ТекМин;

    Это способ получить время в формате "чч:мм" из даты и времени (переменная Дата2).
    Заменяется этим:
    ТекВремя = Формат(Дата2, "ДФ=hh:mm");

    VladC, 21 Декабря 2018

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

    0

    1. 1
    https://www.theverge.com/2018/12/4/18125238/microsoft-chrome-browser-windows-10-edge-chromium

    Chromium победил

    Her, 05 Декабря 2018

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

    +1

    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
    // HooksList.h
    #define PPCAT_NX(A, B) A ## B
    #define PPCAT(A, B) PPCAT_NX(A, B)
    
    #ifdef HOOKS_DEFS
        using namespace NtStructs;
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
            return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__); \
            extern PPCAT(hook_name, _ptr) PPCAT(hook_name, _orig);
    #elif defined(HOOKS_LIST)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            {module_name, #hook_name, (LPVOID)PPCAT(hook_name, _hook), (LPVOID*)&PPCAT(hook_name, _orig), enabled},
    #elif defined(HOOKS_TYPES_DEF)
        using namespace NtStructs;
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
            return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__);
    #elif defined(ORIGINAL_FUNCTIONS_TABLE_DEF)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            PPCAT(hook_name, _ptr) hook_name;
    #elif defined(ORIGINAL_FUNCTIONS_TABLE_FILL)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            (ORIGINAL_FUNCTIONS_TABLE_NAME).hook_name = PPCAT(hook_name, _orig);
    #else
        #define API_HOOK_DEF(...)
    #endif
    
    // NtCreateFile
    API_HOOK_DEF(L"ntdll", NtCreateFile, NTSTATUS, true,
                 PHANDLE            FileHandle,
                 ACCESS_MASK        DesiredAccess,
                 POBJECT_ATTRIBUTES ObjectAttributes,
                 PIO_STATUS_BLOCK   IoStatusBlock,
                 PLARGE_INTEGER     AllocationSize,
                 ULONG              FileAttributes,
                 ULONG              ShareAccess,
                 ULONG              CreateDisposition,
                 ULONG              CreateOptions,
                 PVOID              EaBuffer,
                 ULONG              EaLength)
    
    // NtDeleteFile
    API_HOOK_DEF(L"ntdll", NtDeleteFile, NTSTATUS, true,
                 POBJECT_ATTRIBUTES ObjectAttributes)
    // И так далее
    
    // В .cpp:
    static HookEntry hookEntries[] = {
    #define HOOKS_LIST
    #include "HooksList.h"
    #undef HOOKS_LIST
    };
    
    
    // ...
    static OriginalFunctions originalFuncsTable;
    #define ORIGINAL_FUNCTIONS_TABLE_FILL 1
    #define ORIGINAL_FUNCTIONS_TABLE_NAME originalFuncsTable
    #include "HooksList.h"
    #undef ORIGINAL_FUNCTIONS_TABLE_NAME
    #undef ORIGINAL_FUNCTIONS_TABLE_FILL

    Мокросы!..

    gost, 30 Ноября 2018

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

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    начало пхп прог уннамед
    
    подключить "пхп модуль 1.0"
    
    доллар целое а = 4
    доллар целое б = 2
    
    печать сум доллар а + доллар б 2
    
    помолиться perl
    
    конец пхп прог уннамед

    Ksyrx, 28 Ноября 2018

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

    0

    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
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    #include "pch.h"
    #include <iostream>
    using namespace std;
     
    void p(int a[], int &h )
    {
      int i = 0;
      int max = 0;
      int counter = 1;
      while (counter < h)
      {
        if (a[counter] > a[max])
        {
          max = counter;
        }
        counter = counter + 1;
      }
      int min = 0;
      int counter2 = 1;
      while (counter < h)
      {
        if (a[counter] < a[min])
        {
          min = counter;
        }
        counter = counter + 1;
      }
      int kol, kol2;
      if (max > min)
      {
        if (max != min)
        {
          kol = max - min - 1;
          i = min + 1;
          cout << "Kolichestvo elementov mezdu imin i imax: " << kol << endl;
        }
        else
        {
          cout << "Kolichestvo elementov mezdu imin i imax: 0" << endl;
        }
      }
      else
      {
        if (max != min)
        {
          kol2 = min - max - 1;
          i = max + 1;
          cout << "Kolichestvo elementov mezdu imin i imax: " << kol2 << endl;
        }
        else
        {
          cout << "Kolichestvo elementov mezdu imin i imax: 0" << endl;
        }
      }
      int sum = 0;
      while (i < max)
      {
        sum = sum + a[i];
        i++;
      }
      cout << "Summa elementov mezdu imin i imax: " << sum << endl;
    }
     
     
    int main()
    {
      int h;
      cout << "Vvedite razmer massiva: ";
      cin >> h;
      int *a = new int[h];
      for (int i = 0; i < h; i++)
        cin >> a[i];
      p(a, h);
      delete[] a;
      return 0;
    }

    Увековеченный Говнокод Нама, моего друга из Вьетнама (УГК)

    ugk, 26 Ноября 2018

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

    +1

    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
    export function doFilters(global, value) {
      let filterListGeo, filterListStatus
      const timeLife = global.selectedFilters.ttl // Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
      const timeStart = global.selectedFilters.tts
      const rate = global.selectedFilters.startRate
      const shippingDate = new Date(formatDate(value.dateFrom, 'MM.DD.YYYY'))
      const unloadDate = new Date(formatDate(value.dateTo, 'MM.DD.YYYY'))
      const shippingDateFrom = new Date(global.dateFromInterval[0])
      const shippingDateTo = new Date(global.dateFromInterval[1])
      const unloadDateFrom = new Date(global.dateToInterval[0])
      const unloadDateTo = new Date(global.dateToInterval[1])
    
      if (global.strainer) {
        filterListGeo = global.strainer.geozoneFrom
        filterListStatus = global.strainer.status
      }
    
      return ((!global.selectedFilters) || (!timeLife) || (!timeLife.from && !timeLife.to) || (value.ttl >= timeLife.from && value.ttl < timeLife.to) || (!timeLife.to && value.ttl > timeLife.from)) &&
      ((!global.selectedFilters) || (!timeStart) || (!timeStart.from && !timeStart.to) || (value.ttl >= timeStart.from && value.ttl < timeStart.to) || (!timeStart.to && value.ttl > timeStart.from)) &&
      ((!global.orderId) || (!global.orderId.length || String(value.orderId).substr(0, global.orderId.length) === global.orderId)) &&
      ((!rate.from && !rate.to) || (value.startRate >= rate.from && value.startRate <= rate.to)) &&
      ((!filterListGeo) || (filterListGeo.every(item => !item.checked)) || (filterListGeo.find(item => item.name === value.geozoneFrom).checked)) &&
      ((!filterListStatus) || (filterListStatus.every(item => !item.checked)) || (filterListStatus.find(item => item.name === value.status).checked)) &&
      ((!global.dateFromInterval.length) || (shippingDate >= shippingDateFrom && shippingDate <= shippingDateTo)) &&
      ((!global.dateToInterval.length) || (unloadDate >= unloadDateFrom && unloadDate <= unloadDateTo))
    }

    Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.

    DKVitol, 20 Ноября 2018

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

    +3

    1. 1
    [ '\uD83D\uDC14', '\uD83E\uDD5A' ].sort()

    Unicode порешал

    https://twitter.com/aBagorn/status/1051286652663025664

    Оригинал не влез, ибо:
    Application was halted by an exception.
    Debug-mode is off.

    Elvenfighter, 17 Октября 2018

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

    0

    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
    class MyClass
    {
    public:
    	MyClass() {};
    	MyClass(const MyClass & M1) {
    		MyClass * T = this;
    		delete this; 
    		T = new MyClass(M1);
    	}
    	~MyClass() {};
    private:
    };
    
    int main(int argc, char *argv[])
    {
    	MyClass A1;
    	MyClass *B=new MyClass(A1);
    }

    ОНО РАБОТАЕТ!...вечно правда...НО ПОЧЕМУ ЭТА ТВАРЬ РАБОТАЕТ??? какого можно удалять память... ещё не выделенную... если кто мне объяснит, я буду счастлив (ах да код появился при решении одной забавной задачки, что произойдёт с конструктором копирования при удалении указателя на свой же экземпляр класса)

    cat_code, 13 Октября 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static readonly ConcurrentDictionary<Expression, object> CachedFunctions;
    
    public static Func<TEntity, bool> AsFunc<TEntity>(this object entity, Expression<Func<TEntity, bool>> expr)
        where TEntity : class, IEntity
    {
        //@see http://sergeyteplyakov.blogspot.ru/2015/06/lazy-trick-with-concurrentdictionary.html
        return (Func<TEntity, bool>)CachedFunctions.GetOrAdd(expr, id => new Lazy<object>(
            () => CachedFunctions.GetOrAdd(id, expr.Compile())));
    }

    Вот так хорошая идея ломается о кривую реализацию. Вместо того чтобы сохранить в кэш требуемый тип, сохраняем туда Lazy, возвращающий себя же :)

    leff, 11 Октября 2018

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

    +2

    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
    private int SortWObyAD(WorkOrderShort wo1, WorkOrderShort wo2)
    {
    	if (wo1.AD == wo2.AD)
    	{
    		return 0;
    	}
    	else if (wo1.AD > wo2.AD)
    	{
    		return 1;
    	}
    	else
    	{
    		return -1;
    	}
    }

    Сразу 2 достоинства:
    1) абсолютно не понятно, что такое AD;
    2) ах да, все это можно было бы заменить одной строкой "return wo1.AD - wo2.AD", т.к. все это будет использоваться в одной из стандартных функций сортировки

    Moses, 11 Октября 2018

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