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

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

    −165

    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
    CREATE PROCEDURE Out_Message_ECntl 
    	--<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>, 
    	--<@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
    AS BEGIN
         --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            /* Для Добавления записей в таблицу PPLS2BILLS_SRCO_MESAGE
               сначала создадим временную таблицу с номерами документа
               и ко-вом рейсов по этой дате */
         --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    -- Создаем временную таблицу с результатом группировки неотправленных рейсов
    SELECT Flag_Data , COUNT(Flag_Data) AS Kol_Reis
    INTO Vrem_Tabl_Mesage_Vrem 
    FROM PPLS2BILLS_SRCO
    WHERE Flag_Out_EC = 0 --Не отправленные
    GROUP BY  Flag_Data
    -- Таблица - Стек данные в ней сохраняются до полной обр Рейсов по месяцу
    INSERT INTO Steck_Table_Mesage SELECT
          Flag_Data = a.Flag_Data,
          Kol_Reis  = a.Kol_Reis
    FROM Vrem_Tabl_Mesage_Vrem a
    -- Удаляю Vrem_Tabl_Mesage_Vrem
    DROP Table Vrem_Tabl_Mesage_Vrem
    -- Добавляю записи в таблицу PPLS2BILLS_SRCO_MESAGE
    INSERT INTO  PPLS2BILLS_SRCO_MESAGE SELECT  
       DOCUMENT             = Flag_Data, 
       Nom_Document         = dbo.Mesage_Namber(Flag_Data),
       Kol_Reis_In_Docum    = Kol_Reis,
       Cancel_Kol_Reis_Doc  = ( SELECT COUNT(*)
                                FROM PPLS2BILLS_SRCO_DEL a INNER JOIN PPLS2BILLS_SRCO b
                                ON a.PPLS_ID = b.PPLS_ID
                                WHERE a.Flag_Out_EC = 0 and b.Flag_Out_EC = 0 ),
       Greate_Date_Docum    = GetDate(),
       Flag_Out_EC          = 0
    FROM Steck_Table_Mesage WHERE Flag_Data IS NOT NULL
    -- Корректирую записи  №_Сообщения в PPLS2BILLS_SRCO
    UPDATE a SET Flag_Mesage =
                    (SELECT MAX(Nom_Document) FROM PPLS2BILLS_SRCO_MESAGE a
                            INNER JOIN PPLS2BILLS_SRCO b
                            ON a.DOCUMENT = b.Flag_Data )                        
    FROM PPLS2BILLS_SRCO a INNER JOIN PPLS2BILLS_SRCO_MESAGE b
    ON a.Flag_Data = b.DOCUMENT
    WHERE a.Flag_Out_EC = 0
    -- ==================================================================================
    -- Курсор выбирает строки из PPLS2BILLS_SRCO_MESAGE, заполняет Vrem_Tabl_NumReis
    -- ==================================================================================
    -- Создадим временную таблицу 
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Vrem_Tabl_NumReis]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[Vrem_Tabl_NumReis]
    
    CREATE TABLE [dbo].[Vrem_Tabl_NumReis] (
    	[ID_PPLS] [int] NULL ,
    	[Doc] [char] (8) COLLATE Ukrainian_CI_AI_KS_WS NULL ,
    	[Num] [int] NULL ,
    	[Reis] [int] IDENTITY (1, 1) NOT NULL 
    ) ON [PRIMARY]
    -- Обьявляю курсор
    DECLARE	Cursor_Num_Reis CURSOR 
    FOR SELECT DOCUMENT, Nom_Document 
               FROM PPLS2BILLS_SRCO_MESAGE
     -- Обьявляю переменные для приема полей таблицы
    DECLARE @count int, @DOCUMENT char(8),
            @Nom_Document int
    SELECT @count = 1
    -- Открываю курсор
    OPEN Cursor_Num_Reis  
    FETCH NEXT FROM Cursor_Num_Reis INTO @DOCUMENT, @Nom_Document -- считываю первую запись
    WHILE (@@fetch_status <> -1) -- цикл по записям курсора
    BEGIN	
    -- вставляю в Vrem_Tabl_NumReis (счетчик по выбранным записям)рейсы из PPLS2BILLS_SRCO_MESAGE
    insert into Vrem_Tabl_NumReis  
    select * 
    from dbo.Fun_Num_Reis_in_Mesage(@DOCUMENT,@Nom_Document)
    --корректируем номер рейса в сообщении 
    UPDATE a     
    SET Flag_NumReis_Mes = b.Reis
    FROM PPLS2BILLS_SRCO a INNER JOIN Vrem_Tabl_NumReis b
    ON a.PPLS_ID = b.ID_PPLS
    WHERE a.Flag_Out_EC = 0
    -- Подготавливаю таблицу для нового документа
    truncate table dbo.Vrem_Tabl_NumReis -- при truncate счетчик сбрасывается в 0
    	FETCH NEXT FROM Cursor_Num_Reis INTO @DOCUMENT, @Nom_Document -- переход на следующую запись
    	SELECT @count = @count + 1 -- количество записей
    END
    CLOSE Cursor_Num_Reis -- закрываю курсор
    DEALLOCATE Cursor_Num_Reis -- освобождаю курсор
    --DROP TABLE Vrem_Tabl_NumReis -- удаляю временно созданную таблицу
    END -- Procedure
    GO
    -- ВНИМАНИЕ! - ДОДЕЛАТЬ ПРИ ОТПРАВКЕ ПО ПОЧТЕ УСТ ФЛАГОВ В ТАБЛИЦАХ "ОТПРАВЛЕНО"
    -- И ЗАПОЛНЕНИЕ ТАБЛИЦЫ dbo.PPLS2BILLS_CRCO_Mail_Out
    --truncate table PPLS2BILLS_SRCO_MESAGE
    
    --delete dbo.PPLS2BILLS_SRCO
    --delete dbo.PPLS2BILLS_SRCO_DEL
    --exec dbo.Insert_PPLS2BILLS_SRCO
    --EXEC Insert_PPLS2BILLS_SRCO '17 july, 2002'
    -- exec Out_Message_ECntl

    курсор головного мозга

    bahamot, 11 Декабря 2013

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

    +13

    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
    void Fetch_image::fetch(  ...
    						 , bool& image_repo_available)
    {
    	///...
    	if( smth)
    	{
    		/// ...
    		image_repo_available = false;/// 1
    		throw Exception( ...);/// 2
    	}
    	else
    	{
    		/// ...
    		image_repo_available = true;
    	}
    }
    
    bool Fetch_image::process(... ,bool& image_repo_available)
    {
    	/// ...
    	bool image_repo_available = false;
    	try
    	{
    		/// ...
    		fetch(..., image_repo_available);
    	}
    	catch(Exception const & ex)/// 3
    	{
    		log(...);
    		return false; /// 4
    	}
            catch (...)
            {
                    return false; /// 5
            }
    	/// ...
    }

    Параметры по ссылке
    ///1 устанавливаем значение
    ///2 бросаем исключение
    ///3 в catch ожидаем, что значение сохранится
    ///4 возврат из ф-ии
    И дальше по стеку еще 5 или 6 функций, которые принимают ссылку...


    Нахер так жить, котаны?

    blackhearted, 06 Декабря 2013

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

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    For i=@stroca$ To @stroca$+(#size*2)-500 Step 2
      PokeS(i,"5")
    Next
    PokeS(@stroca$+(#size*2)-500,"555555555555.....")

    Еще один дебил.
    Взято с http://purebasic.info/phpBB3ex/viewtopic.php?f=13&t=3588

    Stertor, 04 Декабря 2013

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

    −131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура ОбработкаЗаполения(Основание)
    
    	// Другой говнокод
    
    КонецПроцедуры

    Стажёр подошёл с вопросом, почему не обрабатывается ввод на основании, а до этого бился не менее часа.

    Voittamaton, 03 Декабря 2013

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

    +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
    $sqlQuery = trim(str_replace("\n", ' ', $sqlQuery));
    $sqlQuery = trim(str_replace("\r", ' ', $sqlQuery));
    $sqlQuery = trim(str_replace("\r\n", ' ', $sqlQuery));
    $sqlQuery = trim(str_replace("\t", ' ', $sqlQuery));
    
    $len = strlen($sqlQuery);
    $type = '';
    $i = 0;
    
    while ($i < $len && $sqlQuery{$i} != ' ') {
    	$type .= $sqlQuery{$i};
    	$i++;
    }
    
    $type = strtoupper($type);

    Получение типа запроса (SELECT, UPDATE и т.д. из строки запроса)

    Homess, 02 Декабря 2013

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

    −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
    Процедура ПараметрНачалоВыбора(Элемент, СтандартнаяОбработка)
    	
    	СтандартнаяОбработка=Ложь;
    	ПараметрВладелец=Справочники.ПараметрыНоменклатуры.ПустаяСсылка();
    	ТипМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Элемент.Значение));
    	
    	ОткрываемаяФорма  = ПолучитьФорму(ТипМетаданных.ПолноеИмя()+".ФормаВыбора");
    	
    	Отборы = Новый Структура("ТипПараметра,Подчинен",ВидНоменклатуры[Элемент.Имя],ПараметрВладелец);
    	Для Каждого ЭлементСтруктуры из Отборы Цикл
    		ЭлементОтбора = ОткрываемаяФорма.Отбор.Найти(ЭлементСтруктуры.Ключ);
    		Если Не ЭлементОтбора = Неопределено  Тогда
    			ЭлементОтбора.Установить(ЭлементСтруктуры.Значение);
    		КонецЕсли;	
    	КонецЦикла;	
    	ОткрываемаяФорма.НачальноеЗначениеВыбора = Элемент.Значение;
    	ОткрываемаяФорма.ОткрытьМодально(); 	
    	ЭтотОбъект[Элемент.Имя] = ОткрываемаяФорма.ТекущийЭлемент.ТекущаяСтрока;
    	ПараметрПриИзменении(Элемент);
    	
    КонецПроцедуры

    Процедура НачалоВыбора в конфе одного из клиентов. Что-то смущает, но не могу понять что.

    rull9ss, 19 Ноября 2013

    Комментарии (8)
  8. Си / Говнокод #14082

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int t, max, x;
    scanf("%d", &x);
    for(t=x%10; max!=t; max=t);
    for(t=x%100/10; max<t; max=t);
    for(t=x%1000/100; max<t; max=t);
    for(t=x/1000; max<t; max=t);
    printf("Max: %d\n", max);

    Нахождение максимальной цифры в 4-значном числе. Одна из первых лаб по Си. Предполагалось использование if, но студенты не ищут лёгких путей. (Сдвиги они пока не учили, так что на вычисление цифры не обращайте внимания.)

    proDOOMman, 07 Ноября 2013

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

    +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
    /*
         * Calculates date for $count_days before today
         * 
         * @param int $count_days - how much days before today
         * @return date - date for $count_days before today
         */
        function DaysBeforeToday($count_days) {
            $date = date('Y-m-d');
            $pos = strrpos($date, '-');
            $date = substr($date, 0, $pos + 1) . (substr($date, $pos + 1, 2) - $count_days);
            return $date;
        }

    ня! ^^

    ragnar, 22 Октября 2013

    Комментарии (8)
  10. JavaScript / Говнокод #14045

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function printNumbersTimeout20_100() {
      var i = 1;
      var timerId = setTimeout(function go() {
        console.log(i);
        if (i < 20) setTimeout(go, 100);
        i++;
      }, 100);
    }
    
    // вызов
    printNumbersTimeout20_100();

    Вывод чисел каждые 100мс, через setTimeout

    Сделайте то же самое, что в задаче "Вывод чисел каждые 100мс", но с использованием setTimeout вместо setInterval.
    http://learn.javascript.ru/task/vyvod-chisel-kazhdye-100ms-cherez-settimeout

    Tairesh, 22 Октября 2013

    Комментарии (8)
  11. Objective C / Говнокод #13969

    −121

    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
    @interface MICheckBox : UIButton{
        BOOL isChecked;
        AppDelegate * appp;
    }
    @property(nonatomic,assign)BOOL isChecked;
    @property(nonatomic,retain)AppDelegate * appp;
    -(IBAction) checkBoxClicked:(id)tt;
    @end
    
    
    @implementation MICheckBox
    
    - (id)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        appp=(AppDelegate *)[[UIApplication sharedApplication]delegate];
    
        if (self) {
            self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
           [self setImage:[UIImage imageNamed:@"cb_dark_off.png"] forState:UIControlStateNormal];
           [self addTarget:self action:@selector(checkBoxClicked:)forControlEvents:UIControlEventTouchUpInside];
       }
        return self;
    }
    
    -(IBAction)checkBoxClicked:(id)tt{
        MICheckBox *ss = (MICheckBox *)tt;
    
        if(self.isChecked ==NO){
            self.isChecked =YES;
            [self setImage:[UIImage imageNamed:@"cb_dark_on.png"]forState:UIControlStateNormal];
    
            int JumpTo_swichCase = ss.tag/1000;
            NSLog(@"---------------------------------------------------------------");
            NSLog(@"AAAAAAA Which Swich CASE==%d",JumpTo_swichCase);
    
    switch (JumpTo_swichCase) {
                case 12:{
                    if(ss.tag>=12100){
                         NSLog(@"AAAAAAA CK.tag=%d",ss.tag);
                        int GG = ss.tag;
                        GG=GG-12100;
                         NSLog(@"You have Cheked CK===%@",[appp.Arr_ZWhyDiditHappen objectAtIndex:GG]);
                        [appp.ArrSTATUS_CKWhyDidHappen addObject:[appp.Arr_ZWhyDiditHappen  objectAtIndex:GG]];
                    }else if (ss.tag>=12000){
                        NSLog(@"AAAAAAA CK.tag=%d",ss.tag);
                        int GG = ss.tag;
                        GG=GG-12000;
                         NSLog(@"You have Cheked CK===%@",[appp.Arr_ZhowYouFelt objectAtIndex:GG]);
                        [appp.ArrSTATUS_CKHowyouFelt addObject:[appp.Arr_ZhowYouFelt objectAtIndex:GG]];
                    }
    }break;
    
    default:{
    }break;
    }
    }
    
    //------------------------------------------------------------------------------------------
        else{
        self.isChecked =NO;
        [self setImage:[UIImage imageNamed:@"cb_dark_off.png"]forState:UIControlStateNormal];
    
        int JumpTo_swichCase = ss.tag/1000;
        NSLog(@"---------------------------------------------------------------");
        NSLog(@"RRRRRRRR Which Swich CASE==%d",JumpTo_swichCase);
    
    switch (JumpTo_swichCase) {
        case 12:{
            if(ss.tag>=12100){
                NSLog(@"RRRRRRRR CK.tag=%d",ss.tag);
                int GG = ss.tag;
                GG=GG-12100;
                NSLog(@"You have Cheked CK===%@",[appp.Arr_ZWhyDiditHappen objectAtIndex:GG]);
                [appp.ArrSTATUS_CKWhyDidHappen removeObject:[appp.Arr_ZWhyDiditHappen  objectAtIndex:GG]];
            }else if (ss.tag>=12000){
                NSLog(@"RRRRRRRR CK.tag=%d",ss.tag);
                int GG = ss.tag;
                GG=GG-12000;
                NSLog(@"You have Cheked CK===%@",[appp.Arr_ZhowYouFelt objectAtIndex:GG]);
                [appp.ArrSTATUS_CKHowyouFelt removeObject:[appp.Arr_ZhowYouFelt objectAtIndex:GG]];
            }
        }break;
    
    default:{
    }break;
    }
    } 
    }

    Вот такой вот чекбокс. Пример использования внутри.

    ArtFeel, 18 Октября 2013

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