1. Java / Говнокод #3753

    +82

    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
    @ValidationExpression(value = "if (inn != null && !\"\".equals(inn)) {\n" +
                                  "char[] st = inn.toCharArray();\n" +
                                  "for(int i=0; i < st.length; i++) {\n" +
                                  "if (!Character.isDigit(st[i])) { return false; }\n" +
                                  "}\n" +
                                  "}" +
                                  "return true;", message = Messages.WRONG_INN_FORMAT)
    @Expression(value = "if (inn != null && !\"\".equals(inn)) {\n" +
                        "char[] st = inn.toCharArray();\n" +
                        "for(int i=0; i < st.length; i++) {\n" +
                        "if (!Character.isDigit(st[i])) { return false; }\n" +
                        "}\n" +
                        "}" +
                        "return true;", messageKey = Messages.WRONG_INN_FORMAT)
    public String getinn() {
    	return getPerson().getinn();
    }
    
    @Required(messageKey = Messages.REQUIRED)
    @DictEntityExists(dictId = MDictionaries.DICT_CURRENCY, message = Messages.NO_DICT_ENTITY)
    @Expression(value = "SystemCounter.DICTCURRENCY__RUR_CURRENCY_TYPE.equals(agentStatementCurrencyId) ? " +
                        "   (" +
                        "       SystemCounter.DICTCURRENCY__RUR_CURRENCY_TYPE.equals(currency_id) ? " +
                        "           true : " +
                        "           SystemCounter.DICTCONTRACTCLASS__CONTRACT_CLASS_XXX.equals(contract_class_id) ? " +
                        "               false : " +
                        "               is_currency_equivalent == 1" +
                        "   ) : (" +
                        "       SystemCounter.DICTCONTRACTCLASS__CONTRACT_CLASS_GENERIC.equals(contract_class_id) &&" +
                        "       is_currency_equivalent == 0 &&" +
                        "       agentStatementCurrencyId.equals(currency_id)" +
                        "   )", messageKey = Messages.CURRENCY_NOT_EQUIVALENT_WITH_AGENT_STATEMENT)
    public String getcurrency_id() {return getContract().getcurrency_id();}

    нет слов

    borka, 21 Июля 2010

    Комментарии (28)
  2. PHP / Говнокод #3752

    +143

    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
    $db = new sql_db($server_db, $user_db, $pass_db, $name_db);
    $db->sql_query("SELECT * FROM `".$prefix."_global` WHERE `name`='global';");
    $row = $db->sql_fetchrow();
    
    define("LANGUAGE_ADMIN","{$row['language_admin']}");
    define("MODUL_HOME_ADMIN","{$row['home_modul_adm']}");
    define("THEMA_ADMIN","{$row['thema_admin']}");
    
    require_once ("language/".LANGUAGE_ADMIN."/ind.php");
    
    if(IN_ADMIN){
    define("IN_ADMIN", TRUE);
    
    	if (!file_exists ("modules/".MODUL_HOME_ADMIN."/index.php"))
    	die (UNIT_NO_DEFAULT);
    	
    	if (isset($_GET ['am'])){ $MODULES = $_GET ['am']; }
    	else { $MODULES = MODUL_HOME_ADMIN; }
    
    	if (file_exists ("modules/".$MODULES."/index.php")) { 
    		require ("modules/".$MODULES."/index.php");
    	}
    	else{ echo UNIT_IS_NOT_FOUND; }
    	
    	if (file_exists (Subject_file_path)) {
    		$TEMPLATES_SITE = file_get_contents(Subject_file_path);
    	}
    	else{
    		echo SUBJECTS_NOT;
    	}
    
    	require(Connect_funct_temp);
    
    	echo $COD_TEMP;
    
    if(!check_user($UserID)) logout();
    
    } else { require(Authorisation_file_path); }

    Пишу CMS и просто интересно мнение... Код короткий, так как многое через define()
    И очень интересно Ваше мнение по нему, зачем define(), чтобы человек первый встречный не наизменял там чего, чтото типа защита от ламера, НО от ЛАМЕРА только) Просто программер так всё поймёт...

    Кароче я тут в первые, и поэтому я ХЗ чё вам сказать ещё))

    nethak, 21 Июля 2010

    Комментарии (403)
  3. Си / Говнокод #3751

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    recordSize=logicalRecordLength;
    BytesToRead=cnt*recordSize;
    records=cnt;
    while ( ((pos + BytesToRead)>dataSize)&&records )
    {
        BytesToRead = --records * recordSize;
    }

    Не думал, что у нас в коде встречу нечто явно похожее на пример №2 из статьи "Индусский код" на Луркморе.
    Ну и стоит добавить, что реально logicalRecordLength всегда равен 1.

    vovochka, 21 Июля 2010

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

    +108

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    ...
    var
     fileName  :string;                // имя файла
     mes       :string;                // текст мессаги
     capt      :string;                // заголовок мессаги
     f         :thandle;
     fils      :integer;
     BytesRead :D WORD;
     c         :byte;
    begin
     writeln('enter filename:');      // просим ввести имя файла
     readln(fileName);                // в fileName заносим имя файла
     if not fileexists(fileName) then // если он несуществует
      begin
      writeln('file not found :( ');   // виводит предупреждение
      readln;
      exit;                           // закриваем прогу
      end;
     writeln('');                              // просим ввесли текст мессаги
     writeln('enter message text (max 10):');  // максмальна длина 10 символов(так как в Project1.exe для нее зарезирвировано 10 байт) потому что длина HelloWorld=10
     readln(mes);
     writeln('');                                 // просим ввести заголовок мессаги
     writeln('enter message caption (max 10):');  // опять максимальная длина 10 символов
     readln(capt);
    
     f:=fileopen(fileName,fmOpenReadWrite);  // откриваем fileName
     fils:=Windows.GetFileSize(f,nil);       // получаем размер
     writeln('size = '+inttostr(fils)+'b');  // виводим размер
    
     // патчим байти для мессаги
     // $2848,$2849,$284A,$284B,$284C,$284D,$284E,$284F,$2850,$2851
     c:=ord(char(pchar(mes[1])));             // патчим первий байт
     SetFilePointer(f, $2848, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[2])));             // патчим второй (2) байт
     SetFilePointer(f, $2849, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[3])));             // патчим 3 байт
     SetFilePointer(f, $284A, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[4])));             // патчим 4 байт;
     SetFilePointer(f, $284B, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[5])));             // патчим 5 байт
     SetFilePointer(f, $284C, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[6])));             // патчим 6 байт
     SetFilePointer(f, $284D, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[7])));             // патчим 7 байт
     SetFilePointer(f, $284E, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[8])));             // патчим 8 байт
     SetFilePointer(f, $284F, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[9])));             // патчим 9 байт
     SetFilePointer(f, $2850, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[10])));             // патчим 10 байт
     SetFilePointer(f, $2851, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     // патчим байти для заголовка мессаги
     // адреса с $283C до $2845
     c:=ord(char(pchar(capt[1])));            // патчим первий байт
     SetFilePointer(f, $283C, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[2])));            // патчим второй байт
     SetFilePointer(f, $283D, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[3])));            // третий символ и так дальше
     SetFilePointer(f, $283E, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[4])));
     SetFilePointer(f, $283F, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[5])));
     SetFilePointer(f, $2840, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    ...

    Где-то нашёл =(

    BlincAttack, 21 Июля 2010

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

    +152

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    template<typename T> class myVector {
    private:
    	T* data; // Указатель на массив с данными
    	int count; //Кол-во элементов в векторе
    	T maxv, minv; // Максимальный и минимальный элементы
    	void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
    	{
    		if (leftarg < rightarg) {
    			T pivotvalue = a[leftarg];
    			int left = leftarg - 1;
    			int right = rightarg + 1;
    			for(;;) {
    
    				while (a[--right] > pivotvalue);
    				while (a[++left] < pivotvalue);
    				if (left >= right) break;
    				T temp = a[right];
    				a[right] = a[left];
    				a[left] = temp;
    			}
    			int pivot = right;
    			quicksort(a, leftarg, pivot);
    			quicksort(a, pivot + 1, rightarg);
    		}
    	}
    public:
    	myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
    	{
    	}
    	~myVector() //Деструктор
    	{
    		if (data)
    			delete [] data;
    	}
    	void operator<<(const T &Value) //Оператор для добавления элемента в вектор
    	{
    		data = (T*)realloc(data, ++count * sizeof(T));
    		data[count-1] = Value;
    		if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
    			maxv = Value;
    		else 
    			if (minv > Value)
    				minv = Value;
    	}
    	T& operator[](const int &Index)//Оператор [] для доступа по индексу
    	{
    		if (Index >= count) throw 1;
    		return data[Index];
    	}
    	void orderAsc(T *result) const //Сортировка по возрастанию
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    	}
    	void orderDesc(T *result) const
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    		int swap, b = count;
    		for(int a = 0; a < --b; a++) {
    			swap = result[a];  result[a] = result[b]; result[b] = swap; 
    		}
    	}
    	T max() const
    	{
    		if (!data) throw 1;
    		return maxv;
    	}
    	T min() const
    	{
    		if (!data) throw 1;
    		return minv;
    	}
    };
    int main()
    {
    	myVector<int> v;
    	for (int i = 0; i < 10; i++)
    		v << rand() % 100; // Заполняем рандомными элементами
    	for (int i = 0; i < 10; i++)
    		printf("%d ", v[i]); // Выводим их
    	printf("\n");
    	int *arr = new int[10];
    	v.orderAsc(arr); //Сортируем по возрастанию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i)); //Выводим результат
    	printf("\n");
    	v.orderDesc(arr); //Сортируем по убыванию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i));//Выводим результат
    	printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
    	delete [] arr;
    }

    Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко

    JC_NVKZ, 20 Июля 2010

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

    +164

    1. 1
    $black = imagecolorallocate($img, 255, 255, 255);

    Не совсем говнокод, конечно, но все же.

    Uchkuma, 20 Июля 2010

    Комментарии (5)
  7. JavaScript / Говнокод #3747

    +159

    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
    <script LANGUAGE="JavaScript">
        <!--
        function checkEmailAddress(email) {
            var allowedChars = ".-_@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            var numberAt = 0;
            var indexAt = -1;
            var thisChar = "";
            if (email == "")
                return 0;
            for(j=0 ; j <= email.length ; j++) {
                thisChar = email.substring(j,j+1);
                if (allowedChars.indexOf(thisChar) == -1) {
                    return 0;
                }
                if (thisChar == "@") {
                    if (j == 0 || j >= email.length - 3 || numberAt > 0)
                        return;
                    numberAt++;
                    indexAt = j;
                }
            }
            if (numberAt != 1)
            {
                return 0;
            }
            if (email.substring(indexAt+1).indexOf(".") <= 0)
                return;
            for (j=0; j < email.indexOf("@"); j++) {
                if (allowedChars.indexOf(email.substring(j,j+1)) >= 4)  // Email address is correct!!
                    return 1;
            }
            return;
        }

    В данный момент используется в зарубежном SaaS-решении

    wunge, 20 Июля 2010

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

    +161

    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
    // говнецо терпимое
    ...
    //говнецо зачетное:
    case 'error':
    $error=array();  
    if (!empty($_POST))  
    {  
    $login=mysql_escape_string(stripslashes(trim($_POST['name']))); 
    $text=mysql_escape_string(stripslashes(trim($_POST['text']))); 
    if (empty($login))  
    $error['empty']='Ошибка. Возможные причины: Логин';
    if (empty($text))  
    $error['empty']='Ошибка. Возможные причины: комментарий';
    
    $select = mysql_query("SELECT `id` FROM `blog`");
    while ($row_id = mysql_fetch_array($select))
    {
    if (!$row_id == $_GET[id_news])
    {
    echo 'нет такойва id новости'; 
    }
    }
    
    break;
    
    // дальше говнецо

    if (!$row_id == $_GET[id_news]) //гениально, оригинал http://forum.wen.ru/?p=3&f=6&t=365157

    GoodTalkBot, 20 Июля 2010

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

    +172

    1. 1
    function getCodeByCode(code)

    хорошее название функции

    mozg_raka, 20 Июля 2010

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

    +114

    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
    private void cmnuEdit_Click(object sender, EventArgs e)
            {
                if (gridView1.FocusedRowHandle >= 0)
                    SelRowPosition = Convert.ToInt16(gridView1.FocusedRowHandle);
                
                if (gridView1.GetSelectedRows().Count()>0)
                {
                    UserGroupAddEdit uae = new UserGroupAddEdit(gridView1.GetSelectedRows()[0]);
                    uae.ShowDialog();
                    Fill();
                }
                else
                {
                    MessageBox.Show(CommonWinForms.Resources.ResourceErrorMessages.PleaseSelectItem);
                }
            }

    Редактирование записи в гриде по индексу строки, после пересортировки индех остаётся прежним ;)

    David_M, 20 Июля 2010

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