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

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

    +126

    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
    public static bool ValidateEmailAddress(string emailAddress)
            {
                try
                {
                    string TextToValidate = emailAddress;
                    // test email address with expression
                    if (emailExpression.IsMatch(TextToValidate))
                    {
                        // is valid email address
                        return true;
                    }
                    else
                    {
                        // is not valid email address
                        return false;
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }

    public static bool ValidateEmailAddress(string emailAddress)
    {
    if(string.IsNullOrEmpty(emailAddress))
    return false;
    return emailExpression.IsMatch(TextToValidate);
    }

    jenik15, 14 Июня 2011

    Комментарии (21)
  3. Assembler / Говнокод #6936

    +197

    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
    ; загрузка из cfg-файла переменной Gravity
    seg011:06CA         fld     [dbl_45A48]   ; 0.2
    seg011:06CF         add     sp, -8
    seg011:06D2         fstp    [bp+var_16]   ; default=0.2
    seg011:06D6         push    ds
    seg011:06D7         mov     ax, offset aGravity
    seg011:06DA         push    ax            ; key="GRAVITY"
    seg011:06DB         wait
    seg011:06DD         push    cs
    seg011:06DE         call    near ptr cfg_ReadDbl
    seg011:06E1         add     sp, 12
    seg011:06E4         fstp    [curGravity]  ; cur=cfg_ReadDbl()
    ; проверка загруженного значения на диапазон [0,05..10,0]
    seg011:06E9         fld     [flt10]
    seg011:06EE         add     sp, -8
    seg011:06F1         fstp    [bp+var_16]   ; max = 10.0
    seg011:06F5         fld     [minGravity]
    seg011:06FA         add     sp, -8
    seg011:06FD         fstp    [bp+var_1E]   ; min = 0.05
    seg011:0701         fld     [curGravity]
    seg011:0706         add     sp, -8
    seg011:0709         fstp    [bp+var_26]   ; cur
    seg011:070D         wait
    seg011:070F         push    cs
    seg011:0710         call    near ptr CheckRangeDbl
    seg011:0713         fstp    st            ; результат нах...
    seg011:0716         add     sp, 24
    <....cut....>
    
    ; double CheckRangeDbl(double cur, double min, double max)
    seg011:0077 proc    CheckRangeDbl far
    seg011:0077 var_2   = word ptr -2
    seg011:0077 @@cur   = qword ptr  6
    seg011:0077 @@min   = qword ptr  0Eh
    seg011:0077 @@max   = qword ptr  16h
    seg011:0077         push    bp
    seg011:0078         mov     bp, sp
    seg011:007A         dec     sp
    seg011:007B         dec     sp
    seg011:007C         fld     [bp+@@cur]
    seg011:0080         fcomp   [bp+@@min]
    seg011:0084         fnstsw  [bp+var_2]
    seg011:0088         wait
    seg011:008A         mov     ax, [bp+var_2]
    seg011:008D         sahf
    seg011:008E         jnb     @@chk_max     ; if (cur < min)
    seg011:0090         fld     [bp+@@min]    ;     st(0) = min
    seg011:0094         jmp     @@exit
    seg011:0096 @@chk_max:                    ; else
    seg011:0096         fld     [bp+@@cur]
    seg011:009A         fcomp   [bp+@@max]
    seg011:009E         fnstsw  [bp+var_2]
    seg011:00A2         wait
    seg011:00A4         mov     ax, [bp+var_2]
    seg011:00A7         sahf
    seg011:00A8         jbe     @@ret_cur     ; if (cur > max)
    seg011:00AA         fld     [bp+@@max]    ;     st(0) = max
    seg011:00AE         jmp     @@exit
    seg011:00B0 @@ret_cur:                    ; else
    seg011:00B0         fld     [bp+@@cur]    ;     st(0) = cur
    seg011:00B4 @@exit:
    seg011:00B4         fst     [bp+@@cur]
    seg011:00B8         wait
    seg011:00BA         mov     sp, bp
    seg011:00BC         pop     bp
    seg011:00BD         retf                  ; return st(0)
    seg011:00BD endp    CheckRangeDbl

    Из старой, очень популярной игрухи (Scorshed Earth). Все как положено, подгружаемые из cfg-файла данные проходят проверку. Только вот результаты проверок (для double, для int и прочих типов) попросту отбрасываются :) Даже не знаю, как такое можно было накодить, на невнимательность непохоже - такого кода довольно много.

    DemonId7, 12 Июня 2011

    Комментарии (21)
  4. Си / Говнокод #6877

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    switch (options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE))
      {
      case 0:
      case PCRE_BSR_ANYCRLF:
      case PCRE_BSR_UNICODE:
      break;
      default: errorcode = ERR56; goto PCRE_EARLY_ERROR_RETURN;
      }

    Выкидываем три варианта, обрабатываем один.

    blueboar2, 06 Июня 2011

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

    −144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Процедура ЗаполнитьНажатие(Элемент)	
    	Если Период_планирования="" или Структурное_подразделение.Пустая() или Плановая_потребность_в_кадрах.Пустая() или Начальник_ППО.Пустая() или Начальник_отдела_кадров.Пустая() тогда
    	ks = Новый COMОбъект ("WScript.Shell");
    	ks.popup("Заполните все необходимые риквизиты верхней части!", 1, "Внимание", 64); 
    	Возврат;
    конецесли;

    Из студенческих работ :)

    r3nya, 06 Июня 2011

    Комментарии (21)
  6. PHP / Говнокод #6868

    +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
    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
    <?php
    /*
    =====================================================
     Esay Engne Site CMS
    -----------------------------------------------------
     http://ees-co.com
    -----------------------------------------------------
     Copyright © 2010 - 2011  EES
    =====================================================
     Назначение: Главная
    =====================================================
    */
    
    require_once("engine/class/config.db.php");
    require_once("engine/editor/bbcode/bbcode.lib.php");
    
    $query = "SELECT * FROM $setting where name='name_site'";
    $lst = @mysql_query($query); 
    $row2 = @mysql_fetch_array($lst);
    $sn = $row2['value'];
    
    $query = "SELECT * FROM $setting where name='home_page'";
    $lst = @mysql_query($query); 
    $row2 = @mysql_fetch_array($lst);
    $HO_PA = $row2['value'];
    
    $query = "SELECT * FROM $setting where name='templates'";
    $lst = @mysql_query($query); 
    $row2 = @mysql_fetch_array($lst);
    $tem = $row2['value'];
    
    $query = "SELECT * FROM $setting where name='status_site'";
    $lst = @mysql_query($query); 
    $row2 = @mysql_fetch_array($lst);
    $status = $row2['value'];

    Что-то тут недавно про EsayScript было... Тут у нас тоже Esay/Easy, только уже целая CMS. Оф.сайт полон опечаток и восторженного школотекста.

    Самое смешное - наткнулся я на эту гадость, увидев AdSense'овский баннер. Неужто современные школьники настолько суровы, что готовы продвигать свой опенсорсный говнокод контекстной рекламой?..

    telnet, 05 Июня 2011

    Комментарии (21)
  7. Ruby / Говнокод #6864

    −99

    1. 1
    2. 2
    <%= @album.playlist.gsub('
    ','<br />') %>

    Тогда, видимо, не догадался написать "\n" :)

    Actine, 05 Июня 2011

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

    −365

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Функция ПреобразоватьМаленькиеБуквыВБольшиеБуквы(Слово)
        
        Слово = СтрЗаменить(Слово, "а", "А");
        Слово = СтрЗаменить(Слово, "б", "Б");
        //...
     
        Слово = СтрЗаменить(Слово, "я", "Я");
        
        Возврат Слово;
        
    КонецФункции

    Легкие пути для слабых))))

    kirillsas, 02 Июня 2011

    Комментарии (21)
  9. Си / Говнокод #6799

    +146

    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
    int main(argc,argv)
    int argc;
    char *argv[];
    {
    int raw=0,httpcont=0;
    int i,ilatex=0,ititle=1;
    char *spoint=0;
    char ttver[]=TTH_VERSION;
    char ttname[20];
    ...
        strcpy(ttname,"Tt");
        strcat(ttname,TTH_NAME);
        strncpy(spoint-10-strlen(ttname),ttname,strlen(ttname));

    Понадобился мне конвертёр TeX в HTML.
    Скачал (http://hutchinson.belmont.ma.us/tth/), всё работает, но оказалось, что он не умеет работать с командой \begin{cases}
    Ну я решил его подправить, благо исходник открыт.
    Открыл я исходник и... решил написать с нуля свой.

    ПС Посоны, что делает 13я строчка?
    ППС Си - говно.

    TarasB, 31 Мая 2011

    Комментарии (21)
  10. Pascal / Говнокод #6731

    +87

    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
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    if Edit1.Text='515' then
    Form1.Caption:='Пароль взломан!'
    else Form1.Caption:='неправельно!';
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Edit1.Text:='1';
    if Edit1.Text='1' then
    begin
    if Form1.Caption='неправельно!' then
    Edit1.Text:='2';
    if Edit1.Text='2' then
    begin
    if Form1.Caption='неправельно!' then
    Edit1.Text:='3';

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

    memnek, 23 Мая 2011

    Комментарии (21)
  11. ActionScript / Говнокод #6729

    −110

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    var vremya=15
    var tim=0
    var FpS=24//ваше fps
    var intarval=1
    stage.addEventListener(Event.ENTER_FRAME,qwer)
    function qwer(e:Event){
    t+=interval
    if(tim>vremya*FpS){
    interval=0
    trace("15 сукунд прошло!!!")
    }
    }

    Как сделать 15-секундную задержку? анонимус подскажет!

    KirAmp, 22 Мая 2011

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