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

    +109

    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
    procedure RemoveDir(path: string);
    var
      sr: TSearchRec;
    begin
      if FindFirst(path + '\*.*', faAnyFile, sr) = 0 then
      begin
        repeat     
          if sr.Attr and faDirectory = 0 then
            DeleteFile(path + '\' + sr.name);
          else
              RemoveDir(path + '\' + sr.name);
        until
          FindNext(sr) <> 0;
      end;
      FindClose(sr);
      RemoveDirectory(PChar(path));
    end;

    История такова, писал я как-то программу по курсовому. (Это было еще года два-три назад, когда я про юнит тесты и различные технологии проектирования и разработки ничего не знал.) По задумки программа распаковывала некие файлы во временный каталог рядом с приложением и по завершению работы с ними удаляла эту папку вот этим методом. Итак, запустил я эту подпрограмму на выполнение для проверки ее работоспособности и смотрю в файловом менеджере, что папка успешно удалилась и все ок. Но вдруг студия начала жаловаться что нет каких-то файлов, я смотрю в файловый менеджер и вижу что файлы проекта программы исчезают буквально на глазах! Естественно я резко убиваю программу и далее начинаю восстанавливать исходники. Благо, что делал бэкапы и эта подпрограмма проработала все ничего, а ведь последствия могли быть еще больше. А мораль такая, нужно быть предельно внимательным, когда работаешь с удалением какой-либо информации.

    P.S. Нужно добавить проверку между 10 и 11 строкой:
    if (sr.Name <> '..') and (sr.Name <> '.') then

    vanished, 18 Декабря 2010

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

    +113

    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
    function FUNC(XD: TXMLDocument; L: ShortString): IXMLNode;
    var
      c: integer;
      ln: IXMLNode;
      s: ShortString;
    begin
      c:=0;
      while c <> XD.DocumentElement.ChildNodes.Count-1 do
      begin
        if VarToStr(XD.DocumentElement.ChildNodes[c].Attributes['id']) = L then
        begin
          ln:=XD.DocumentElement.ChildNodes[c];
          c:=XD.DocumentElement.ChildNodes.Count-1
        end else
        begin
          c:=c+1; {DEBUG(VarToStr(XD.DocumentElement.ChildNodes[c].Attributes['id'],L) } 
        end
      end;
      result:=ln
    end;

    К слову о невнимательности и "непримеченных слонах". Итак задачка: перебором найти в наборе данных нужную строку и вернуть в итоговый результате элемент набора данных. Используем код (выше). По невнимательности своей я допустил в алгоритме ошибку и функция работала несколько некорректно. Перед Вами её изначальный вариант, до исправления. Если вкратце, то баг заключался в том, что функция не читала последний элемент XML-документа. Называется, нефиг было мудрить с алгоритмом. По сути там надо убрать из двух мест "-1". Но пока я докапывался до сути ошибки, я написал тестовую функцию, сравнивающую две строки и выводящую результат сравнения в окно сообщения. Назовём её DEBUG. И... Началось непонятное. Функция выдавала сообщение, значит результаты, как видно по алгоритму, не равны, но она выдавала РАВЕНСТВО! Мозг взрывается, ломаются представления о математике и рациональности вообще!

    Xander_Bass, 18 Декабря 2010

    Комментарии (24)
  3. C# / Говнокод #4964

    +127

    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
    //TODO: Delete the comment after a successful test.
    
    var Client = new TcpClient();
    
    int a = num._.i.i.i.i.i;
    int b = num._.i.i.i.u.d;
    int c = (((num)(a + b)).l++.u+b).u.i.i;
    
    // port = 726
    int port = a + b + c;
    
    // ips = "127.0.0.1"
    string ips = ip._.i.u.i.i.i.u.d.d.d.s['.'].s['.'].s['.'].i.s;
    
    Client.Connect(ips, port);

    Very hard-hard code!

    vanished, 18 Декабря 2010

    Комментарии (29)
  4. PHP / Говнокод #4963

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $src = fopen("0.txt", 'r');
    while(!feof($src))
    {
            $line[] = fgets($src);
            $line++;
    }

    Интересно чему в конце будет равно $line? :)

    Xander_Bass, 17 Декабря 2010

    Комментарии (47)
  5. Java / Говнокод #4962

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private String get4DigitRandom() {
            final int length = 4;
            int number = (int) (Math.random() * Math.pow(10, length));
            StringBuilder sb = new StringBuilder();
            for (int i = length; i > 0; i--)
                sb.append("" + (int) (number / Math.pow(10, i - 1)) % 10);
    
            return sb.toString();
        }

    yozh, 17 Декабря 2010

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

    +119

    1. 1
    public string flag = "no";

    Golovastick, 17 Декабря 2010

    Комментарии (29)
  7. C++ / Говнокод #4960

    +173

    1. 1
    AX=pow(A[i].r.get_x()*A[i].r.get_x(),0.5);

    Берем модуль числа.

    Taus, 17 Декабря 2010

    Комментарии (50)
  8. PHP / Говнокод #4959

    +163

    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
    <?php
    // Заменить значния, выделенные жирным на действительные
    // Соединяемся с "Мускулом"
     define("MYSQL_HOST","myhost.ru",true);
     define("MYSQL_USER","username",true);
     define("MYSQL_PASS","userpass",true);
     define("MYSQL_DB_N","userdb",true);
     define("MYSQL_DB_N","userstable",true);
     $_MYSQL_CONNECT = false; $_MYSQL_ERROR = -1;
     if ($_MYSQL_CONNECT = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS))
     {
      if (mysql_select_db(MYSQL_DB_N,$_connect))
      {
       $_MYSQL_ERROR = 0; define("MYSQL_CONNECTED",true,true);
      } else { $_MYSQL_ERROR = 2; define("MYSQL_CONNECTED",false,true); }
     } else { $_MYSQL_ERROR = 1; define("MYSQL_CONNECTED",false,true); }
    // Проверяем значение
    // Определяем список разрешённых неалфавитноцифровых символов
     $_SRCH[0] = '.'; $_SRCH[1] = '_'; $_SRCH[2] = '-'; $_SRCH[3] = ' ';
     if (isset($_POST['user']))
     {
      $_tmp = iconv("UTF-8","CP1251//IGNORE",urldecode($_POST['user']));
      if (ctype_alnum(str_replace($_SRCH,'',$_tmp)) && (strlen($_tmp) < 33))
      {
       if (MYSQL_CONNECTED)
       {
        $_query = 'SELECT * FROM '.MYSQL_US_N." WHERE nick='".$_tmp."'";
        if ($_result = mysql_query($_query,$_MYSQL_CONNECT))
        {
         if ($_row = mysql_fetch_assoc($_result))
         {
          define("_RESULT","RES_EX",true);
         } else { define("_RESULT","RES_OK",true); }
        } else { define("_RESULT","RES_MYSQL_BQ",true); }
       } else { define("_RESULT","RES_MYSQL_NC",true); }
      } else { define("_RESULT","POST_IN",true); }
     } else { define("_RESULT","POST_NS",true); }

    qbasic, 17 Декабря 2010

    Комментарии (58)
  9. JavaScript / Говнокод #4958

    +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
    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
    var _nickObj = document.getElementById('userNick');
    var _indNick = document.getElementById('userNickInd');
     
    var regVerReq;
    try { regVerReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e)
         { try { regVerReq = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e)
               { regVerReq = false; }
         }
    if (!regVerReq && typeof(XMLHttpRequest)!='undefined') { regVerReq = new XMLHttpRequest(); }
     
    function verifyNick()
    {
     if (regVerReq)
     {
      regVerReq.open("post","/php/veruser.php",true);
      regVerReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      var regVerHB = 'user='+encodeURIComponent(_nickObj.value);
      regVerReq.onreadystatechange = function()
      {
       if (regVerReq.status == 200)
       {
        if (regVerReq.readyState == 4)
        {
         switch ( regVerReq.responseText )
         {
          case 'RES_OK':
            _indNick.innerHTML = 'Свободен';
            _indNick.style.color = 'green';
            break;       
          case 'RES_EX':
            _indNick.innerHTML = 'Занят';
            _indNick.style.color = 'red';
            break;       
          default:
            _indNick.innerHTML = 'Некорректно';
            _indNick.style.color = 'red';
            break;       
         }
        }
       } else
       {
        _indNick.innerHTML = 'Ошибка сервиса';
        _indNick.style.color = 'red';
       }
      }
      _indNick.innerHTML = 'Проверка';
      _indNick.style.color = 'gray';
      regVerReq.send(regVerHB);
     }
    }

    qbasic, 17 Декабря 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //Предосмотр
                $pre = '';
            if (1==1) {
                $prev_pic = str_replace('/', '--', iconv_substr(strstr($v['path'], '/'), 1));
    }

    ===ЗАГРУЗ-ЦЕНТР===
    # Автор : Sea
    # E-mail : [email protected]
    # ICQ : 355152215
    # Вы не имеете права распространять данный скрипт
    # По всем вопросам пишите в ICQ
    файл - search.php, строка 143

    4ibo, 17 Декабря 2010

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