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

    +115.9

    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
    function TFilesStrings.LastSlash(FileString: string): byte;
    {*
      Функция для вычисления положения последнего слеша в строке
    *}
    var
      i: byte;
    begin
      Result := 0;
      for i := 1 to Length(FileString) do
        if (FileString[i] = #92) then Result := i;
    end;
    {==============================================================================}
    
    
    {******************************************************************************}
    function TFilesStrings.GetPath(FullFileName: string): string;
    {*
      Функция возвращает оконечный путь у заданному Файлу
    *}
    var
      SlNum: byte;
    begin
      Result := '';
      SlN um := LastSlash(FullFileName);
    
      Result := Copy(FullFileName, 1, SlNum);
    end;

    Вот ещё вспомнил... Не мог понять почему у меня не работает функция ExtractFilePath, пришлось писать вручную :)

    S@nderS, 25 Ноября 2009

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

    +92.4

    1. 1
    2. 2
    if (a<0) or (a=0) 
    then ...

    Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?

    Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.

    S@nderS, 25 Ноября 2009

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if(strstr($username, '**')) {
    
    $admin = 1;
    $username = str_replace('**', '', $username);
    $_SESSION['admin'] = 1;
    
    } else {
    
    $admin = 0;
    
    }

    Вот нашел случайно... Судя по всему этот кусок в каком-то коммерческом проекте
    "Actually, it turns out there’s an even simpler way, and that Adam P’s predecessor discovered and implemented it for their client’s fairly large ecommerce website."

    furang, 25 Ноября 2009

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

    +156.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #topBlock
    <script language="JavaScript">
    function process(){}
    today = new Date()
    if((today.getHours() < 12) && (today.getHours() >= 6)) {background:url('http://site/1.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 12) && (today.getHours() < 18)) {background:url('http://site/2.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 18) && (today.getHours() <= 23)) {background:url('http://site/3.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 0) && (today.getHours() < 6)) {background:url('http://site/4.png') top center no-repeat;height:243px;}
    </script>
    #tobTable.... ну и дальше неважно

    Отчаянная попытка сделать логотип, сменяющий цвет в зависимости от времени суток =) Как выяснилос, поциент вставлял это в CSS. http://helper.ucoz.ru/forum/20-6633

    fuckyounoob, 25 Ноября 2009

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

    +170.8

    1. 1
    /* Читайте описание, не пожалеете =) */

    Коллеги!
    Сейчас кода уже нет, но могу объяснить в двух словах, это было гениально!

    Интерфейс наподобие CRM с выводом записей в HTML таблицу.

    Таблица MySQL с 130 000 записями, без (!) индексов.
    Брались ВСЕ 130 000 (!) записей и загонялись в PHP массив!
    И потом делалась пагинация с выводом по 20 на странице!
    И КАК! Делался цикл по всему (!) массиву, т. е. 1 до 130 000.
    И функция, которая проверяла, входит ли $i (индекс цикла) в промежуток типа от ($page-1)*$on_page до $page*$on_page! Если $i наша - выводим, нет - идем дальше (!) по циклу без остановки.

    Это похоже на программы со специальной задержкой для видимости бурной вычислительной деятельности, которые делали на Delphi в школе - со StatusBar'ами и Sleep'ами.

    Вся эта шняга даже на арендованном сервере работала по 30 секунд.
    Про HTML в стиле <font color="red".. size="2" и т. д. - отдельная история.

    Создавал это 35-летний штатный программист, получавший непомерную зарплату.

    matveev, 25 Ноября 2009

    Комментарии (18)
  6. Куча / Говнокод #2175

    +126.7

    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
    covered({tee,_,X,Y,1}) -> [{X,Y},{X-1,Y-1},{X-1,Y},{X-1,Y+1}];
    covered({tee,_,X,Y,2}) -> [{X,Y},{X,Y+1},{X+1,Y+1},{X-1,Y+1}];
    covered({tee,_,X,Y,3}) -> [{X,Y},{X+1,Y},{X+1,Y+1},{X+1,Y-1}];
    covered({tee,_,X,Y,4}) -> [{X,Y},{X,Y-1},{X+1,Y-1},{X-1,Y-1}];
    covered({l1,_,X,Y,1})  -> [{X+1,Y-1},{X+1,Y},{X+1,Y+1},{X,Y+1}];
    covered({l1,_,X,Y,2})  -> [{X-1,Y-1},{X,Y-1},{X+1,Y-1},{X+1,Y}];
    covered({l1,_,X,Y,3})  -> [{X-1,Y-1},{X-1,Y},{X-1,Y+1},{X,Y-1}];
    covered({l1,_,X,Y,4})  -> [{X-1,Y+1},{X,Y+1},{X+1,Y+1},{X-1,Y}];
    covered({l2,_,X,Y,1})  -> [{X+1,Y-1},{X+1,Y},{X+1,Y+1},{X,Y-1}];
    covered({l2,_,X,Y,2})  -> [{X-1,Y-1},{X,Y-1},{X+1,Y-1},{X-1,Y}];
    covered({l2,_,X,Y,3})  -> [{X-1,Y-1},{X-1,Y},{X-1,Y+1},{X,Y+1}];
    covered({l2,_,X,Y,4})  -> [{X-1,Y+1},{X,Y+1},{X+1,Y+1},{X+1,Y}];
    covered({bar,_,X,Y,1}) -> [{X,Y},{X-1,Y},{X+1,Y},{X+2,Y}];
    covered({bar,_,X,Y,2}) -> [{X+1,Y},{X+1,Y+1},{X+1,Y-1},{X+1,Y-2}];
    covered({bar,_,X,Y,3}) -> [{X+2,Y-1},{X-1,Y-1},{X,Y-1},{X+1,Y-1}];
    covered({bar,_,X,Y,4}) -> [{X,Y-2},{X,Y-1},{X,Y},{X,Y+1}];
    covered({r1,_,X,Y,1})  -> [{X,Y},{X+1,Y},{X,Y+1},{X-1,Y+1}];
    covered({r1,_,X,Y,2})  -> [{X,Y},{X,Y-1},{X+1,Y},{X+1,Y+1}];
    covered({r1,_,X,Y,3})  -> [{X,Y},{X+1,Y-1},{X,Y-1},{X-1,Y}];
    covered({r1,_,X,Y,4})  -> [{X,Y},{X-1,Y-1},{X-1,Y},{X,Y+1}];
    covered({r2,_,X,Y,1})  -> [{X,Y},{X+1,Y},{X-1,Y-1},{X,Y-1}];
    covered({r2,_,X,Y,2})  -> [{X,Y},{X,Y-1},{X-1,Y+1},{X-1,Y}];
    covered({r2,_,X,Y,3})  -> [{X,Y},{X-1,Y},{X+1,Y+1},{X,Y+1}];
    covered({r2,_,X,Y,4})  -> [{X,Y},{X,Y+1},{X+1,Y},{X+1,Y-1}];
    covered({box,_,X,Y,_})  -> [{X,Y},{X,Y+1},{X+1,Y},{X+1,Y+1}].

    крутой erlang без говнокода не обходиться
    http://www.erlang.org/examples/small_examples/tetris.erl

    zlob.jc, 25 Ноября 2009

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

    +154.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $srv_id=$_POST['srv_id'];
    $result = mysql_query("
    SELECT *
    FROM srv
    WHERE
    srv_id='$srv_id'");
    $data = mysql_fetch_array($result);
    // ...
    $srv_id=$data['srv_id'];

    marten.spb, 25 Ноября 2009

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

    −366.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Public Overrides Function DataChanged() As Boolean
            Const CONST_PROC_NAME = "DataChanged"
            Try
                Return False
            Catch objExcp As Exception
                Me.DisplayMessageBox("Unexpected Exception in " & CONST_CLASS_NAME & "." & CONST_PROC_NAME & " : " & objExcp.Message.ToString, MessageBoxIcon.Error)
            End Try
        End Function

    По суровому закону нашего проекта каждая функция должна быть обернута ловлей эксепшиона. Каждая. Всегда.

    6istik, 24 Ноября 2009

    Комментарии (24)
  9. Assembler / Говнокод #2172

    +240.1

    1. 1
    2. 2
    fld qword ptr [d]
    call @ROUND

    Это творчество дельфийского компилятора на тему i := round(d);
    Он делает вызов функции ради одной пустяковой команды, что очень влияет на скорость.

    TarasB, 24 Ноября 2009

    Комментарии (283)
  10. Си / Говнокод #2171

    +106.7

    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
    char *getUI_ID_AsString(MENU_ID menuId)
    {
        char *IdStr;
        	
    	if((menuId == VOLUME_ID) || (menuId == POPUPWIN_ID) || (menuId == YESNOWIN_ID) || (menuId == MAINMENU_ID) || (menuId == 
    		MODEMENU_ID) || (menuId == USBMODE_ID) || (menuId == SETTINGSMENU_ID) || (menuId == MENUPLAYMODE_ID) || (menuId == MENUEQ_ID) 
    		|| (menuId == MENUSETTING_ID) || (menuId == MENULOCK_ID) || (menuId == MENUPLAYSPEED_ID) || (menuId == MENUCONTRAST_ID) || (menuId == 
    		MENUBACKLIGHT_ID) || (menuId == MENULANGUAGE_ID) || (menuId == MENUSHUTDOWN_ID) || (menuId == MENUINFO_ID) || (menuId == 
    		MENUBEEP_ID) || (menuId == MENUFACTORYSET_ID) || (MENUUSEREQ_ID) || (menuId == SET_PREFERENCES_ID) || (menuId == 
    		MENUCONFIRM_RESET_ID) || (menuId == MENUCONFIRM_FORMAT_ID) || (menuId == MAINRECMENU_ID) || (menuId == RECSETMODE_ID) || 
    		(menuId == RECSETINPUT_ID) || (menuId == RECSETVAD_ID) || (menuId == RECSETAUTOSYNC_ID) || (menuId == NAVIGATION_ID) ||
    		(menuId == PROMPT_VOLUME_ID) || (menuId == MENUGPSAPPL_MAIN_ID) || (menuId == POWERON_CONNECTING_ID) || (menuId == 
    		HOMESCREEN_ID) || (menuId == RC_DOWNLOADING_ID) || (menuId == SCREEN_BRIGHTNESS_ID) || (menuId == ABOUT_ID) || (menuId == 
    		INSTMENU_ID) || (menuId == INST_ABOUT_ID) || (menuId == DISPL_ORIENT_ID) || (menuId == LINEOUT_ID) || (menuId == 
    		PRIVACY_MUTE_ID) || (menuId == TEST_INSTALL_ID) || (menuId == FACTORY_RESET_ID) || (menuId == CALL_DTMF_ID) ||	(menuId == 
    		NAVI_FILEMENU_ID) || (menuId == NAVI_CONFIRM_DEL_ID) || (menuId == NAVI_SELECTFOLDER_ID) || (menuId == LANG_SELECT_ID) ||
    		(menuId == DISPLAY_JPG_ID) || (menuId == DISPLAY_TEXT_ID) || (menuId == SET_DISPLAY_ID))
    	{
    	    IdStr = (char *) malloc(4);
        	strcpy(IdStr, " MENU");
    	}
    	else if( <тут примерно еще столько же условий> )
    		{
    		       IdStr = (char *) malloc(5);
    			   strcpy(IdStr, " PHONE");
    		}
    	else if( <тут примерно еще столько же условий> )
    		{
    		    strcpy(IdStr, " PBOOK");
    		}
    	else if( <тут примерно еще столько же условий> )
    		{
    		    IdStr = (char *) malloc(5);
    		    strcpy(IdStr, " MUSIC");
    		}
    	else if( <тут примерно еще столько же условий> )
    		{
    		    IdStr = (char *) malloc(3);
    		    strcpy(IdStr, " MSG");
    		}
    		
    		return IdStr;
    }

    Шедевр индусского говнокодирования. А потом с нас спрашивают, почему это у нас система нестабильно работает.
    switch, по ходу, они еще в школе не прошли, да и с математикой у них плоховато. А где-то память вообще выделять не надо - зачем?

    Scrambler, 24 Ноября 2009

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