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

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

    −120

    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
    Option Explicit
    
    Dim HTMLCode As String 'переменная для хранения кода страницы
    
    Private Sub Command1_Click()
        Winsock1.RemotePort = 80                'устанавливаем порт сервера 80
        Winsock1.RemoteHost = "ippages.com"     'Хост
        Winsock1.Connect                        'Подключаемся
        Label4.Caption = Winsock2.LocalIP
    End Sub
    
    Function CutIP(HTML As String) As String
    Dim p1 As Integer
        p1 = InStr(HTML, "Content-Type: text/html")
        CutIP = Trim(Mid(HTML, p1 + 27, Len(HTML) - p1 - 23))
    End Function
    
    Private Sub Label1_Click()
    
    End Sub
    
    Private Sub Winsock1_Close()        'Событие генерируется при закрытии Канала связи
        Form1.Caption = "Не подключен" 'Просто сообщаем о том что не подключены
        Winsock1.Close
    End Sub
    
    Private Sub Winsock1_Connect()      'Событие генерируется при подключении
       Form1.Caption = "Подключение"      'Подключены
       'Посылаем запрос на сервер  выдающему наш IP
      Winsock1.SendData "GET " + "/simple/" + " HTTP/1.0" + Chr(10) + Chr(10)
    End Sub
    
    'Событие генерируется когда нам приходят данные
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim Temp As String
      Winsock1.GetData HTMLCode
      Label1.Caption = CutIP(HTMLCode)
    End Sub
    
    Получение ай-пи адреса посредством отправки на сайт запроса через компонент WinSock.
    http://vbbook.ru/visual-basic/polychenie-svoego-ip/
    Строго говоря, это не лажа кодера, просто используется (по незнанию?) очень глючный и непредсказуемый компонент.

    Fixed by me:

    Function GetCurrentIP() As String
    Dim txt As String
    Dim i, j As Integer
    Dim mshttp As New XMLHTTP 'по умолчанию сервер всегда зареган.
    mshttp.open "GET", "http://checkip.dyndns.org/", False ' синхронный get
    mshttp.send
    txt = mshttp.responseText
    i = InStr(1, txt, ":")

    If i > 0 Then
    i = i + 1
    Else
    GetCurrentIP = "" ' удобно было бы, если по присваиванию, подобному этому, происходило покидание процедуры. Ан, нет.
    Exit Function
    End If

    j = InStr(i, txt, "</")
    If j < 1 Then
    GetCurrentIP = ""
    Exit Function
    End If

    GetCurrentIP = Trim(Mid(txt, i, j - i))
    End Function

    Stertor, 15 Февраля 2014

    Комментарии (203)
  3. Куча / Говнокод #25701

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Есть какие советы, как уехать за границу так, чтобы поддерживать связь с родителями и не быть найденным?
    
    Я думаю, что даже через мобильник связываться опасно.
    Пеленг, все дела, хоть там и схемы на жесткой логике, чаще всего. Но боязно.
    В конце концов, доступ к таким операциям можно получить через взлом сервера\технического отдела.

    OlegUP, 06 Июля 2019

    Комментарии (202)
  4. Python / Говнокод #26017

    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
    Building on that example, the new syntax for function definitions would look like:
    
    def name(positional_only_parameters, /, positional_or_keyword_parameters,
             *, keyword_only_parameters):
    
    Therefore the following would be valid function definitions:
    
    def name(p1, p2, /, p_or_kw, *, kw):
    def name(p1, p2=None, /, p_or_kw=None, *, kw):
    def name(p1, p2=None, /, *, kw):
    def name(p1, p2=None, /):
    def name(p1, p2, /, p_or_kw):

    https://www.python.org/dev/peps/pep-0570

    3.14159265, 07 Ноября 2019

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

    +143

    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
    // основная функция запуска
    func main($script){
        //устанавливаем значение переменной
        $caption = "гыыы кальулятор";
        
        //грузим иконку
    	$calc_icon= library_load_icon(library_load("shell32.dll"),307);
    	
    	//создаем окошко))
    	$main_window=gui_window("TCalc",$caption,$_WS_SYSMENU+$_WS_VISIBLE+$_WS_CAPTION,$_CW_DESKTOPCENTER,$_CW_DESKTOPCENTER,200,100,$calc_icon,0,0,"WindowFunc");
    	
    	gui_control($main_window,"button","ok",201,$_WS_CHILD+$_WS_VISIBLE+$_BS_DEFPUSHBUTTON+$_BS_FLAT,152,16,32,16);
    	gui_control($main_window,"edit","2+7",202,$_WS_CHILD+$_WS_VISIBLE,2,15,130,15);
    	gui_control($main_window,"static","Ready",203,$_WS_CHILD+$_WS_VISIBLE,16,36,130,16);
    	
    	//иконка в трее...
    	tray_icon($main_window,$calc_icon,"ГАЛЬГУЛЯТОР",$_NIM_ADD);
    	tray_icon_show_balloon($main_window,"[$caption] -> Startup","Добро пожаловать в программу\nСоздано с неизвестным языком (название не придумал)",4);
    	idle(); //перевод программы в режим ожидания
    }
    	 
    func WindowFunc($hwnd,$msg,$param,$id){ //обработка сообщений виндоуса
    	if($msg==$_WM_CLOSE){  //если крестик нажали
    		tray_icon($main_window,$calc_icon,null,$_NIM_DELETE);  //удаляем иконку
    		close();  //выходим
    	}
    	if($msg==$_WM_COMMAND){  //если нажали кнопку
    		if($id==201){ //click ok  //определяем ID   //math_compiler - производить математические операции
    			$res=math_compiler(gui_get($hwnd,202)); //gui_get - получить текст
    			if length($res)==0 {                    //gui_set - установить текст
    				$res="[ERROR]";
    				tray_icon_show_balloon($hwnd,"[$caption] -> Ашипка","Нивазможна\nправирить текст!",2);
    			}else{
    				tray_icon_show_balloon($hwnd,"[$caption] -> Result",gui_get($hwnd,202)." = $res",4);
    			}
    			gui_set($hwnd,203,$res);
    		}
    	}
    }

    Названия языка нет..
    Если не нравятся названия команд (например, func и т.д.), то пишите, исправлю. Потом вам готовую версию вышлю :)

    Mobac, 20 Апреля 2014

    Комментарии (201)
  6. Assembler / Говнокод #27884

    −8

    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
    .MODEL small ;отводим под стек и под данные по 64Кб код занимает 1 сегмент, данные и стек обьеденены в одну группу
    .STACK 100h ;отмечаем начало сегмента стека
    .DATA ;отмечаем начало сегмента данных
     
    _STDOUT_ equ 1 ; из синтаксического описания видно, что с помощью equ идентификатору 
    ;можно ставить в соответствие как числовые выражения, так и текстовые строки, 
        ;а псевдооператор “=” может использоваться только с числовыми выражениями;
    vivod db 0Dh, 0Ah, '$' ; $-кон. стр.
     
    String db 82 dup(?); выделение памяти для строки 
    PosLen db 14 dup(?); выделение памяти для строки (числа)
    Pos dw ? ; память для первого числа
    Len dw ? ; для второго
     
    .CODE ;отмечаем начало сегмента кодов
    preob proc ; процедура преобразования из строки в число
    xor ax, ax
    mov bx, ax
    mov cx, 10 ; для реализации цикла
    _repeat:
    mov bl, [si] ; помещаем в bl символ строки
    inc si ; в si переходим к ячейке следующего символа
    sub bl, '0'; преобразуем ASCII код в число
    jb _break ; если SF = 1 то выходим из процедуры(указывает, что между числами стоит пробел, числовой код пробела меньше числового кода нуля)
    cmp bl, 9 ; сравниваем, если число больше 9 - то это символ - идём на выход
    ja _break
    mul cx
    add ax, bx ;прибавляет в регистр ax нужное число
    jmp _repeat
    _break:
    ret ; возврат в в главный код
    preob endp
     
    main PROC
    ;инициализация сегментного регистра ds адресом сегмента данных
    mov ax, @data
    mov ds, ax
     
    ;ввод строки
    mov [String], byte ptr 80
    mov ah, 0Ah
    lea dx, [String]
    int 21h
     
    ;ввод строки чисел
    mov al,10 ; перенос строки
    int 29h ; быстрый вывод символов на экр(экон байт)
    mov [PosLen], byte ptr 14
    mov ah, 0Ah
     
    lea dx, [PosLen]
    int 21h
     
    ;преобразование строки в первое число
    lea si, [PosLen+2]
    call preob
    mov [Pos], ax
    call preob
    mov [Len], ax
     
    mov al,10 ; перенос строки
    int 29h ; быстрый вывод символов на экр(экон байт)
    mov ah, 40h ;номер функции помещается в ah
    mov bx, _STDOUT_ ;в bx хранится дескриптор стандартного выходного потока
    mov cx, [Len] ; кол-во выводимых символов
    lea dx, [String+1] ; адрес буфера вывода
    add dx, [Pos] ; берем 1 сим. и добавляем число, чтобы перейти к нужному нам символу
    int 21h 
     
    ;завершение программы
    xor ax,ax
    int 16h
    mov ax,4c00h
    int 21h
    MAIN ENDP
    END MAIN

    Помогите разобраться в коде, понять логику
    Задание: Ввести с клавиатуры строку и строку из двух чисел. Первое число ука- зывает начало подстроки для ввода на экран, второе количество символов из пер- вой строки, которое необходимо вывести на экран.

    tuple, 20 Декабря 2021

    Комментарии (200)
  7. Куча / Говнокод #24028

    −5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Привет петухи.
    Страйкер, зацени (не фишинг):
    http://govnokod.xyz
    
    Кто желает присоединиться, или просто обосрать, вот сорцы https://github.com/guestinho/govnokod-wordpress
    Кроме повторения функционала самого говнокода, есть говносток.
    Также как у борманда, можно добавлять в игнор (нужно зарегистрироваться, список хранится в базе).
    Счетчик непрочитанных рабочий.
    Все ники с govnokod.ru зарезервированы. Но свой ник (если вы имеете к нему доступ) можно подтвердить при регистрации, путем постинга специального коммента. Мыло не обязано быть таким же.

    g0_1494089681773, 28 Марта 2018

    Комментарии (200)
  8. Си / Говнокод #27835

    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
    // https://github.com/microsoft/Windows-driver-samples/blob/d3ec258921cfcef7b053b5a2c866330d43dd3f03/filesys/fastfat/dumpsup.c#L35
    
    #define DumpLabel(Label,Width) {                                          \
        size_t i, LastPeriod=0;                                                \
        CHAR _Str[20];                                                        \
        for(i=0;i<2;i++) { _Str[i] = UCHAR_SP;}                               \
        for(i=0;i<strlen(#Label);i++) {if (#Label[i] == '.') LastPeriod = i;} \
        strncpy(&_Str[2],&#Label[LastPeriod],Width);                          \
        for(i=strlen(_Str);i<Width;i++) {_Str[i] = UCHAR_SP;}                 \
        _Str[Width] = '\0';                                                   \
        DbgPrint("%s", _Str);                                                  \
    }
    
    #define DumpField(Field) {                                         \
        if ((FatDumpCurrentColumn + 18 + 9 + 9) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + 9 + 9;                            \
        DumpLabel(Field,18);                                           \
        DbgPrint(":%p", Ptr->Field);                                  \
        DbgPrint("         ");                                          \
    }
    
    #define DumpListEntry(Links) {                                     \
        if ((FatDumpCurrentColumn + 18 + 9 + 9) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + 9 + 9;                            \
        DumpLabel(Links,18);                                           \
        DbgPrint(":%p", Ptr->Links.Flink);                            \
        DbgPrint(":%p", Ptr->Links.Blink);                            \
    }
    
    #define DumpName(Field,Width) {                                    \
        ULONG i;                                                       \
        CHAR _String[256];                                             \
        if ((FatDumpCurrentColumn + 18 + Width) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + Width;                            \
        DumpLabel(Field,18);                                           \
        for(i=0;i<Width;i++) {_String[i] = (CHAR)Ptr->Field[i];}             \
        _String[Width] = '\0';                                         \
        DbgPrint("%s", _String);                                        \
    }
    
    #define TestForNull(Name) {                                 \
        if (Ptr == NULL) {                                      \
            DbgPrint("%s - Cannot dump a NULL pointer\n", Name); \
            return;                                             \
        }                                                       \
    }

    Макроговно от мекомягких для отладки файловой системы FAT

    j123123, 22 Ноября 2021

    Комментарии (199)
  9. Perl / Говнокод #4478

    −118

    1. 1
    return (($publish && $filename ne '--') ? 1 : 0);

    Особенно умиляют скобочки

    krushi, 29 Октября 2010

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    import nacl
    from nacl.signing import VerifyKey
    from nacl.encoding import HexEncoder
    
    
    v = VerifyKey('c328dd78deb171f38ed6a6d7ff6f55a2f84fa75f1aca4d544beec00c6c882dbe', encoder=HexEncoder)
    v.verify('ed23a4dab9aea504c74df88818e665cacbc98a258214d48b0be5491b7fae47b1ded7bba07be43286c60fa5e570fa4d2be12afc5a307be0703a9303402873a60761646d696e4067636f64652e7370616365', encoder=HexEncoder)
    # b'[email protected]'

    gost, 29 Февраля 2020

    Комментарии (198)
  11. Си / Говнокод #26027

    +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
    #include <stdio.h>
    #include <inttypes.h>
    #include <string.h>
    
    // endian dependend
    #define PUT3(a,b,c) (((uint64_t)a<<8*0) | ((uint64_t)b<<8*1) | ((uint64_t)c<<8*2))
    
    void testswitch(uint64_t x)
    {
      switch (x) 
      { 
        case PUT3('a','b','c'): printf("abc\n"); 
          break; 
        case PUT3('d','e','f'): printf("def\n"); 
          break; 
        case PUT3('g','h','i'): printf("ghi\n"); 
          break; 
        default: printf("Choice other than abc, def and ghi\n"); 
          break;   
       }
    }
    
    int main() 
    { 
       uint64_t x = 0;
       char a[] = "abc";
       memcpy(&x, a, sizeof(a)-1);
       testswitch(x);
    
       char b[] = "def";
       memcpy(&x, b, sizeof(a)-1);
       testswitch(x);
    
       char c[] = "ghi";
       memcpy(&x, c, sizeof(a)-1);
       testswitch(x);
       return 0; 
    }

    switch для строк!

    Перечитывал несвежие говнокоды, где я выкладывал творчество вконтактоолимпиадников https://govnokod.ru/23170#comment388376

    j123123, 12 Ноября 2019

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