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

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

    +116

    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
    bool IsAdd = false;
    
    
                if (EditAnalysisTable.Rows.Count == 1)
                {
                    if (EditAnalysisTable.Rows[0][4].ToString() == string.Empty)
                    {
                        drow = EditAnalysisTable.Rows[0];
                    }
                    else
                    {
                        IsAdd = true;
                    }
                }
                else
                {
                    IsAdd = true;
                }
                if (IsAdd)
                {
                    drow = EditAnalysisTable.NewRow();
                    EditAnalysisTable.Rows.Add(drow);
                }

    Indian style: у них свои законы логики

    Nataly, 17 Февраля 2012

    Комментарии (2)
  3. Куча / Говнокод #9452

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    <script type="text/javascript" src="/js/common.js"></script>
    <script type="text/javascript"> 
             SiteExplorer.getContent = function() {
                return '<ul>'
       +   '<li><a href="/" class="page">Главная Siemens</a></li>'
          +'<li class="collapsed">'
                      +'<a href="javascript:void(0);" class="collapsed" id="2168"></a><a href="/solutions_and_services/" class="none">Решения и услуги</a>'
                      +'<ul>'
                      +'<li class="collapsed">'
                      +'<a href="javascript:void(0);" class="collapsed" id="2176"></a><a href="/solutions_and_services/energy/" class="none">Энергетика</a>'
                      +'<ul>'
                      +'<li><a href="/solutions_and_services/energy/pg/" class="page">Производство энергии на ископаемом топливе</a></li>'
                +'<li><a href="/solutions_and_services/energy/ptd/" class="page">Энергия из возобновляемых источников</a></li>'
                +'<li><a href="/solutions_and_services/energy/sis/" class="page">Нефть и газ</a></li>'
                +'<li><a href="/solutions_and_services/energy/2180/" class="page">Сервис энергетического оборудования</a></li>'
                +'<li><a href="/solutions_and_services/energy/2181/" class="page">Передача энергии</a></li>'
                
                      +'</ul>'
                   +'</li>' 
    /* ещё сотни две строк */
    +'<li><a href="/suppliers/" class="page">Поставщикам</a></li>'
                
       +'</ul>';
             }
    </script>
    <link href="/gallery/css/lightwindow.css" type="text/css" rel="stylesheet"></link>

    http://w3.siemens.ru/jobs_careers/

    faiwer, 16 Февраля 2012

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

    +162

    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
    $orders = $DB->Query("INSERT INTO `zcrm_orders` SET 
        `ORDER_NUMBER` = '09/".str_pad($arEventFields['ORDER_ID'], 6, '0', STR_PAD_LEFT)."', 
        `DATETIME` = '".$dateOrder."', 
        `FIO` = '".$arEventFields['ORDER_PROP_7']."', 
        `NAME_ORGANIZATION` = '".$arEventFields['ORDER_PROP_1']."', 
        `TELEFON` = '".$arEventFields['ORDER_PROP_4']."', 
        `TELEFON_MOD` = '".preg_replace('/[^\d]+/','', $arEventFields['ORDER_PROP_4'])."',
        `EMAIL` = '".$arEventFields['ORDER_PROP_6']."', 
        `OPLATA` = '8', 
        `DOSTAVKA` = '".$_POST["id_dostavka"]."', 
        `CITY` ='".$arEventFields['NASPUNKT_DOSTAVKA']."',
        `PUNKT_DOSTAVKA` = '".$arEventFields['ADRESS_DOSTAVKA']." ".$arEventFields['SKLAD_DOSTAVKA']."',
        `DATE_DOSTAVKA` = '".$arEventFields['DATE_DOSTAVKA']."', 
        `TIME_DOSTAVKA` = '".$arEventFields['TIME_DOSTAVKA']."', 
        `PRICE_DOSTAVKA` = '".$arEventFields['PRICE_DELIVERY2']."', 
        `COMMENTS` = '".$arOrder['USER_DESCRIPTION']."' ");

    Внимательно смотрим на 10 строчку.

    ast, 15 Февраля 2012

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    dData->RowCount++;
    
             for (int i = 0; i < dData->RowCount - 1; i++)
                   for (int j = 0; j < dData->ColumnCount; j++)
                        dData->Rows[i]->Cells[j]->Value = dData->Rows[i + 1]->Cells[j]->Value;

    Мучил седня DataGridView, при dData->RowCount++ создавалась новая строчка в таблице, но только сверху. Остальное съезжало вниз на 1 ячейку. Я боролся полчаса с этим, пока не объяснил проблему товарищу. он предложил свой вариант всего кода:
    dData->Rows->Add();
    :DDDD

    idec, 14 Февраля 2012

    Комментарии (2)
  6. VisualBasic / Говнокод #9394

    −110

    1. 1
    2. 2
    If f <> "" Then Shell(Path, AppWinStyle.Hide)
            If f = "" Then Shell(Path)

    Угу, про Else тогда еще не слышали :)

    ipro, 12 Февраля 2012

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

    +156

    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
    function mydebug($arr1=array(), $narr1='', $arr2=array(), $narr2='', $arr3=array(),$narr3='',$arr4=array(),$narr4='',$arr5=array(),$narr5='',$arr6=array(),$narr6='',$arr7=array(),$narr7='' ) {
    	$var = 'arr';
    	$nvar =  'narr';
    	$quit = false;
    	for($i=1; $i<8; $i++) {
    		if(${$var.$i} == 'exit' ) {
    				$quit = true;
    				continue;
    			}
    			 
    			elseif( !is_array(${$var.$i}) || is_array(${$nvar.$i})) {
    				${$var.$i} = false;
    				${$nvar.$i} = false;
    			}
    			 
    			elseif(!empty(${$var.$i})) {
    				echo ${$nvar.$i}.'<br>';
    				var_dump(${$var.$i});
    				echo "<hr>";
    			}
    			 
    			else continue;
    	}
    	if($quit == true) {
    		exit;
    	}
    }

    breathe, 10 Февраля 2012

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

    +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
    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
    #define COMMAND_MARKER		'\x1B'
    #define COMMAND_SET			'='
    #define COMMAND_XOR			'^'
    #define COMMAND_OR			'|'
    #define COMMAND_AND			'&'
    
    void usbWriteOut(uchar *data, int len)
    {
    	while(len--) {
    		uchar c = *data;
    		buf[0] = buf[1];
    		buf[1] = buf[2];
    		buf[2] = buf[3];
    		buf[3] = c;
    		
    		if(buf[0] == COMMAND_MARKER) {
    			uint8_t val = (hex2u(buf[2]) << 4) | hex2u(buf[3]);
    			if(buf[1] == COMMAND_SET) {
    				colorData = val;
    			}
    			else if(buf[1] == COMMAND_XOR) {
    				colorData ^= val;
    			}
    			else if(buf[1] == COMMAND_OR) {
    				colorData |= val;
    			}
    			else if(buf[1] == COMMAND_AND) {
    				colorData &= ~val;
    			}
    		}
    	}
    }

    Простой баг оказался крайне подлым!
    При тестировании девайса терминалкой и чепятании команды ручками, каждый символ уходил в отдельном пакете и создавалось впечатление, что всё работает.
    После чего девайс был собран с применением большого количества термоклея, так что исправление бага оказалось совершенно непростым занятием >_<

    odmin, 09 Февраля 2012

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

    +1014

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #ifndef _WIN32
        std::ostream  * dpOutputStream;
    #else
            ostream  * dpOutputStream;
    #endif

    делаем код портабельным.

    Dummy00001, 08 Февраля 2012

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

    +117

    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
    /// <summary>
    /// Преобразование элемента перечисления в строку
    /// </summary>			
    private String GetEnumElementString(Object e, Type t)
    {
    	string result = string.Empty;
    
    	if (t == typeof(AccessMode))
    	{
    		if ((AccessMode)e == AccessMode.CacheOnly)
    		{
    			result = LocalStrings.AccessMode_CacheOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerOnly)
    		{
    			result = LocalStrings.AccessMode_ServerOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerAndCache)
    		{
    			result = LocalStrings.AccessMode_ServerAndCache_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else if (t == typeof(MapImageType))
    	{
    		if ((MapImageType)e == MapImageType.Map)
    		{
    			result = LocalStrings.MapImageType_Map_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Satellite)
    		{
    			result = LocalStrings.MapImageType_Sattelite_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Hybrid)
    		{
    			result = LocalStrings.MapImageType_Hybrid_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else
    	{
    		throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    	}
    
    	return result;
    }

    Конвертация Enum в строку. Аффтар уникален, и это лишь одно из проявлений его уникальности.
    Swith - для трусов, статические тулзы и Extension - для дураков. У нас для этого будут методы классов, между прочим класс, в который входит этот метод - UserControl.
    Кстати, поля LocalStrings - не константы, а статика:

    public static string AccessMode_CacheOnly_RU = "Только кэш"; ....

    ICELedyanoj, 08 Февраля 2012

    Комментарии (2)
  11. 1C / Говнокод #9334

    −134

    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
    Если Сумма25<>0 Тогда
    				с25=Сумма25/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма26<>0 Тогда
    				с26=Сумма26/Итог("Материалы")*Материалы;
    			КонецЕсли;
    			Если Сумма60<>0 Тогда
    				с60=Сумма60/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма691<>0 Тогда
    				с691=Сумма691/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма692<>0 Тогда
    				с692=Сумма692/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма6921<>0 Тогда
    				с6921=Сумма6921/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма6922<>0 Тогда
    				с6922=Сумма6922/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    
    			Если Сумма693<>0 Тогда
    				с693=Сумма693/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма6931<>0 Тогда
    				с6931=Сумма6931/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма6932<>0 Тогда
    				с6932=Сумма6932/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма694<>0 Тогда
    				с694=Сумма694/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма695<>0 Тогда
    				с695=Сумма695/Итог("Материалы")*Материалы;
    			КонецЕсли;
    			Если Сумма70<>0 Тогда
    				с70=Сумма70/Итог("Материалы")*Материалы;
    			КонецЕсли; 
    			Если Сумма97<>0 Тогда
    				с97=Сумма97/Итог("Материалы")*Материалы;
    			КонецЕсли;

    glavdir, 06 Февраля 2012

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