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

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

    −172

    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
    private static function copyByteArray(source:ByteArray, destination:ByteArray, length:uint = 0):void
        {
            var oldPosition:int = source.position;
    
            source.position = 0;
            destination.position = 0;
            var i:uint = 0;
    
            while (source.bytesAvailable > 0 && i < length)
            {
                destination.writeByte(source.readByte());
                i++;
            }
    
            source.position = oldPosition;
            destination.position = 0;
        }

    Только вы не думайте, что это школьная лаба. Это все он же родимый, Flex framework, mx.utils.Base64Decoder, прошу любить и жаловать! :)
    Для тех, кто не в курсе, у ByteArray есть "родные" методы readBytes и writeBytes которые делают то, что описано в этом методе, ну только в пару раз быстрее...

    wvxvw, 05 Июня 2010

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

    +137

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Result, str, str1, str2, str3, str4, str5, str6 : string;
    PLen, stroka, i : integer;
    begin
    Randomize;
    str:='';
    Memo1.Clear;
    stroka := SpinEdit2.Value;
    str1 := '1234567890';
    str2 := 'abcdefghijklmnopqastuvwxyz';
    str3 := 'ABCDEFGHIJKLMNOPQASTUVWXYZ';
    str4 := '!@#$%^&*()_+|\=-<>.,/?''; :"][}{';
    str5 := 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
    str6 := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
    PLen := SpinEdit1.Value;
    if CheckBox1.Checked = True
    then str:=str+str1;
    if CheckBox2.Checked = True
    then str:=str+str2;
    if CheckBox3.Checked = True
    then str:=str+str3;
    if CheckBox4.Checked = True
    then str:=str+str4;
    if CheckBox5.Checked = True
    then str:=str+str5;
    if CheckBox6.Checked = True
    then str:=str+str6;
    if CheckBox1.Checked or
    CheckBox2.Checked or
    CheckBox3.Checked or
    CheckBox4.Checked or
    CheckBox5.Checked or
    CheckBox6.Checked = False
    then
    MessageDlg('Выберите символы, которые вы хотите использовать!',mtWarning,[mbOK],0)
    else
    for i := 1 to stroka do begin
    Result := '';
    repeat
    Result := Result+str[Random(Length(str))+1];
    until (Length(Result) = PLen);
    Memo1.Lines.Add(Result);
    end;
    end;

    Пример генератора паролей на Delphi
    http://delphistudio.ru/primery-na-delphi/sistema/119-generator-porolej.-primer-na-delphi.html

    вспоминается цитата какого говнокодера с баша
    http://bash.org.ru/quote/406823
    которую быдлота наплюсовала

    3.14159265, 31 Мая 2010

    Комментарии (9)
  4. 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)
  5. C++ / Говнокод #3290

    +155

    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
    char Sort(char Type, int l, int r)
    {
      int i = l, j = r;
      char x[31];
      void *y = 0;
      setmem(x, 31, 0);
      strcpy(x, ((TData*)(DataLists[CurrentList][(l+r)/2]))->Data[CurrentCol-1]);
      do
      {
        if (Type==UP)
        {
          switch(CurrentCol)
          {
    	case 1: case 2:
    	  while (strcmp(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1], x) < 0)
    	    ++i;
    	  while (strcmp(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1], x) > 0)
    	    --j;
    	  break;
    	default:
    	  while (atoi(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1])<atoi(x))
    	  ++i;
    	  while (atoi(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1])>atoi(x))
    	  --j;
          }
        }
        else
        {
          switch(CurrentCol)
          {
    	case 1: case 2:
    	  while (strcmp(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1], x) > 0)
    	    ++i;
    	  while (strcmp(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1], x) < 0)
    	    --j;
    	  break;
    	default:
    	  while (atoi(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1])>atoi(x))
    	    ++i;
    	  while (atoi(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1])<atoi(x))
    	    --j;
          }//switch
        }//if
        if (i<=j)
        {
          y = DataLists[CurrentList][i];
          *(DataLists[CurrentList].GetPointerToData(i)) = DataLists[CurrentList][j];
          *(DataLists[CurrentList].GetPointerToData(j)) = y;
          ++i, --j;
        }
      }
      while (i<=j);
        if (l<j)
        {
          if (Type==UP)
    	Sort(UP, l, j);
          else
    	Sort(DOWN, l, j);
        }
      if (i<r)
      {
        if (Type==UP)
          Sort(UP, i, r);
        else
          Sort(DOWN, i, r);
      }
    return 1;
    }

    По-моему, это должна была быть сортировка Хоара, а получилось говно. Самое странное - это то, что оно работает...

    Max ID, 21 Мая 2010

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

    +132

    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
    DWORD WINAPI readPort( LPVOID lpParam )
    {
            while (1)
            {
                    if (brkListen)
                            break;
    
            if (((Param*)(void*)lpParam)->port)
                    if (fgetc(((Param*)(void*)lpParam)->port)!=EOF);
                            ((Param*)(void*)lpParam)->count++;
            }
    
            return 0;
    }

    Кусок программы подсчёта импульсов с оптопорта. Мало того что так делать плохо, так ещё один косяк есть. RS232 ниже 64 бод в винде не держит. так и не выяснил в физике это дело или в оси. Под RTEMS 6.04 64 бод на ура считалось.

    ursus, 19 Мая 2010

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

    +149

    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
    $sql = " SELECT *, DATE_FORMAT( `date`, '%d.%m.%y %H:%i:%s' ) as `date` FROM `messages` ORDER BY `id` DESC LIMIT {$n->start()},".PNUMBER;
    	if ( $qr=mysql_query( $sql ) )
    	{
    		
    			while ( $row = mysql_fetch_assoc( $qr ) )
    			 {
    				echo htmlspecialchars( $row['name'] ).' ['.htmlspecialchars( $row['date'] ).']<br>';
    				echo smile( htmlspecialchars( $row['message'] ) ).'<br>';
    				if ( $row['otvet'] )
    					echo '<b>Ответ: '.smile( htmlspecialchars( $row['otvet'] ) ).'</b><hr>';
    				else
    					echo '<hr>';
    			}
    	}
    	else 
    	{
    		echo 'Произошла системная ошибка';
    		mysql_function_error( 'Возникла ошибка при запросе. SQL: '.$sql.'|ERROR: '.mysql_error( ) );
    	}

    ...

    lugaro, 17 Мая 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    if (!$defaults && !is_null($defaults))
    {
      $this->form->setDefaults($defaults->toArray());
    }

    Все три строчки, зато какие! :)

    kovel, 17 Мая 2010

    Комментарии (9)
  9. PHP / Говнокод #3238

    +167

    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
    class string{
    
    function strToUp($lo){
    $up=array("а" => "А","б" => "Б","в" => "В","г" => "Г","д" => "Д","е" => "Е","ж" => "Ж","з" => "З","и" => "И",
    "й" => "Й","к" => "К","л" => "Л","м" => "М","н" => "Н","о" => "О","п" => "П","р" => "Р","с" => "С",
    "т" => "Т","у" => "У","ф" => "Ф","х" => "Х","ц" => "Ц","ч" => "Ч","ш" => "Ш","щ" => "Щ","ъ" => "Ъ",
    "ы" => "Ы","ь" => "Ь","э" => "Э","ю" => "Ю","я" => "Я", "a" => "A", "b" => "B", "c" => "C","d" => "D","e" => "E","f" => "F","g" => "G","h" => "H","i" => "I","j" => "J",
    "k" => "K","l" => "L","m" => "M","n" => "N","o" => "O","p" => "P","q" => "Q","r" => "R","s" => "S",
    "t" => "T","u" => "U","v" => "V","w" => "W","x" => "X","y" => "Y","z" => "Z"
    );
    
    return strtr($lo, $up);
    }
    }

    говнокласс ?? взято тут: http://www.runanet.net/technical/php/3/

    antigovnokoder, 16 Мая 2010

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

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class cout_mt : public std::ostringstream
    {
    public:
       ~mt_ostream()
       {
          std::cout << str();
       }
    };
    
    #define cout static_cast<cout_mt&>(cout_mt())

    Для того чтобы не разрывались строки вида: cout << "Value = " << value << ";" << endl; при использовании таких вызовов из нескольких тредов, а то ведь каждый оператор << является вызовом функции и частенько треды мешаю друг другу выводить . . .

    k06a, 14 Мая 2010

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

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function getItemsList ($category_id, $page_number, $count, $sort) {
    	ini_set ('display_errors', 'Off');
            $arr = $this->grabber_api_class->loadItemsByCategoryID ($category_id, $page_number, $count, $sort);
    	ini_set ('display_errors', 'On');
    		
    	return $arr;
    	
    }

    minisot, 14 Мая 2010

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