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

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

    −869.4

    1. 1
    select ST1,lower(naim||' ( '||nam||' )') from ST_REAL, (select nvl(d.k_dor, g.k_admi+200) kod, decode(:lng,'uk',n_strnus/*ua_country*/,'ru',N_Strnr/*ru*_country*/) nam from (select relsa.k_admi,N_Strnr,n_strnus from d_adm@psv_nsi relsa, d_strn@psv_nsi strana/*, arm_spr.gosdor@uzc1 doroga*/ where relsa.k_strn=strana.k_strn)

    ramzes2, 10 Апреля 2010

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

    +144.8

    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
    99. 99
    bool PathProcessor::Process(PPProcess *pProcess)
    {
    	std::vector<int> viRoute; int nRouteCount; bool bRetVal = false;
    	for (int i = 0; i < m_viExcludeStop.size(); i++){
    		if (m_viExcludeStop[i] == pProcess->nStartStopId) return false;
    	}
    	int bbb = 0;
    	if (pProcess->nRouteId < 0){
    		viRoute = GetRoutesID(pProcess->nStartStopId);
    		nRouteCount = viRoute.size();
    		if (nRouteCount <= 0) return false;
    	}
    	else{
    		viRoute = GetRoutesID(pProcess->nStartStopId, pProcess->nRouteId);
    		nRouteCount = viRoute.size();
    		if (nRouteCount <= 0) return false;
    		nRouteCount = 1;
    	}
    	for (int i = 0; i < nRouteCount; i++){
    		RouteDataInfo rdCur = GetRoute(viRoute[i]);
    		pProcess->nRoutePartId = rdCur.nId;
    		PPResult *pRes;
    		bool bCurRetVal = false;
    		if (pProcess->bIsFirstStop == true){
    			pRes = new PPResult();
    			pRes->bFinished = false;
    			pRes->nFirstStopId = pProcess->nFirstId;
    			pRes->nLastStopId = -1;
    			pRes->nRouteId = rdCur.nRouteId;
    			m_viResult.push_back(pRes);
    		}
    		else pRes = pProcess->pLastResult;
    		if (pRes != NULL){
    			PartInfo piTemp(rdCur.nId, rdCur.nLastStopId);
    			pRes->viPartsId.push_back(piTemp);
    		}
    		if (IsEndStop(rdCur.nLastStopId) == true){
    			if (pRes != NULL){
    				pRes->bFinished = true;
    				pRes->nLastStopId = rdCur.nLastStopId;
    			}
    			bRetVal = true;	bCurRetVal = true;
    		}
    		if ((pProcess->IsStopExist(rdCur.nLastStopId) == false) && (bCurRetVal == false)){
    			if ((pProcess->nCurStep < m_nMaxStep) && (pProcess->nRouteId >= 0)){
    				PPProcess ppProc;
    				ppProc.nCurStep = pProcess->nCurStep;
    				ppProc.nRouteId = pProcess->nRouteId;
    				ppProc.nStartStopId = rdCur.nLastStopId;
    				ppProc.pPrevProc = pProcess;
    				ppProc.bIsFirstStop = false;
    				ppProc.nFirstId = pProcess->nFirstId;
    				if (pProcess->pLastResult == NULL) ppProc.pLastResult = pRes;
    				else ppProc.pLastResult = pProcess->pLastResult;
    				if (Process(&ppProc) == true) bRetVal = true;
    			}
    			else if (pProcess->nCurStep < m_nMaxStep){
    				PPProcess ppProc;
    				ppProc.nCurStep = pProcess->nCurStep;
    				ppProc.nRouteId = rdCur.nRouteId;
    				ppProc.nStartStopId = rdCur.nLastStopId;
    				ppProc.pPrevProc = pProcess;
    				ppProc.bIsFirstStop = false;
    				ppProc.nFirstId = pProcess->nFirstId;
    				if (pProcess->pLastResult == NULL) ppProc.pLastResult = pRes;
    				else ppProc.pLastResult = pProcess->pLastResult;
    				if (Process(&ppProc) == true) bRetVal = true;
    			}
    			if (pProcess->nCurStep+1 < m_nMaxStep){
    				PPProcess ppProc2;
    				ppProc2.nCurStep = pProcess->nCurStep+1;
    				ppProc2.nRouteId = -1;
    				ppProc2.nStartStopId = rdCur.nLastStopId;
    				ppProc2.pPrevProc = pProcess;
    				ppProc2.bIsFirstStop = true;
    				ppProc2.nFirstId = rdCur.nLastStopId;
    				ppProc2.pLastResult = NULL;
    				if (Process(&ppProc2) == true){
    					PPResult *pRes2;
    					pRes2 = new PPResult();
    					pRes2->bFinished = true;
    					pRes2->nFirstStopId = pRes->nFirstStopId;
    					pRes2->nLastStopId = rdCur.nLastStopId;
    					pRes2->nRouteId = pRes->nRouteId;
    					PPProcess *pProc = pProcess;
    					while (pProc != NULL){
    						PartInfo piTemp(pProc->nRoutePartId, pProc->nStartStopId);
    						pRes2->viPartsId.push_back(piTemp);
    						pProc = pProc->pPrevProc;
    					}
    					m_viResult.push_back(pRes2); bRetVal = true;
    				}
    			}
    		}
    	}
    	if ((bRetVal == false) && (pProcess->nRouteId < 0))
    		m_viExcludeStop.push_back(pProcess->nStartStopId);
    	return bRetVal;
    }

    Когда-то давно писал алгоритм поиска маршрутов, теперь удевляюсь как это все работает да еще и не виснет

    Snake2101, 09 Апреля 2010

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

    +166.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?
    $fileSelect = array();
    $sql  = 'SELECT * FROM bd_file';
    $stmt = db_prepare($sql, $file); $res  = db_query($stmt);
    while($row = db_fetch_row(res))
    {
    	if (!is_file(filefolder.'/'.$row[название_файла]))) {
    		$fileSelect[$file] = $file;
    	}
    }
    unset($fileSelect);
    ?>

    В добавок к #2929.
    Этим образом идет проверка существование документов в панели администратора

    MoLe-X, 05 Апреля 2010

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

    +143.8

    1. 1
    private const long magic = 0x6567617355444343L;

    Магия.......

    unreal, 02 Апреля 2010

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

    +117.4

    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
    ....
    tr = new TableRow();
                tc = new TableCell();
                tr.Cells.Add(tc);
                tc = new TableCell();
                tr.Cells.Add(tc);
                tc = new TableCell();
                tr.Cells.Add(tc);
                tc = new TableCell();
                tr.Cells.Add(tc);
                tc = new TableCell();
                tc.HorizontalAlign = HorizontalAlign.Right;
                tr.Cells.Add(tc);
    
                mf_TableMF2.Rows.Add(tr);

    заполняем таблицу пустыми ячейками

    alex_donetsk, 02 Апреля 2010

    Комментарии (3)
  7. SQL / Говнокод #2902

    −873.6

    1. 1
    2. 2
    declare @FromDate datetime, @ToDate datetime
    set @FromDate =  convert(char(10),dateadd(dd,-1,getdate()),20)

    synapse, 31 Марта 2010

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

    +167

    1. 1
    2. 2
    $is_alias=substr($_SERVER[SCRIPT_FILENAME],-strlen($_SERVER[SCRIPT_NAME])) != $_SERVER[SCRIPT_NAME] ? true : false;
    define('HOSTROOT',($is_alias ? $root_dir : realpath(substr($_SERVER[SCRIPT_FILENAME],0,-strlen($_SERVER[SCRIPT_NAME])))));

    Определяем путь до папки со скриптом. (c) RapidGet

    dmOx, 28 Марта 2010

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

    +158.6

    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
    $query = "SELECT * FROM `HTML_ocHoBa`";
    $res = mysql_query($query);
    while($row = mysql_fetch_array($res)){
     $HTML_ocHoBa_MetaAuthor = $row['Meta_Author'];
     $HTML_ocHoBa_MetaKeywords = $row['Meta_Keywords'];
     $HTML_ocHoBa_Title = $row['Title'];
     $HTML_ocHoBa_CSSurl = $row['CSS_url'];
     $HTML_ocHoBa_CSS = $row['CSS'];
     $HTML_ocHoBa_ScriptUrl = $row['Script_url'];
     $HTML_ocHoBa_Script = $row['Script'];
    }
    echo <<<HD
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
    <HTML>
     <Head>  
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="author" content="$HTML_ocHoBa_MetaAuthor">
      <meta name="keywords" content="$HTML_ocHoBa_MetaKeywords">
      <title>$HTML_ocHoBa_Title</title>
      <link rel="stylesheet" type="text/css" href="$HTML_ocHoBa_CSSurl">
      <style type="text/css"><!--
    $HTML_ocHoBa_CSS
      --></style>
      <script type="text/javascript" language="javascript" src="$HTML_ocHoBa_ScriptUrl"></script>
      <script type="text/javascript" language="javascript"><!--
    $HTML_ocHoBa_Script
      --></script>
      </Head>
     <Body><Table class="tbl_0"><tr><td>
    $HTML_ocHoBa_cogepwaHue
     </td></tr></Table></Body>
    </HTML>
    HD;

    Отседова)))
    http://forum.vingrad.ru/forum/topic-294895/kw-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5.htm l

    DanxilLs, 26 Марта 2010

    Комментарии (3)
  10. SQL / Говнокод #2871

    −157.2

    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
    Select @clientMoney_DayEnd = coalesce([Money], 0.0)
    FROM dbo.AccountOperation 
    where 
    	OperationDateTime = (
    		select max(OperationDateTime) 
    		from dbo.AccountOperation 
    		where 
    			cast(year(OperationDateTime) as varchar(4)) + 
    				right('0' + cast(month(OperationDateTime) as varchar(2)), 2) + 
    				right('0' + cast(day(OperationDateTime) as varchar(2)), 2) <= 
    			(
    				select cast(datepart(year, max(QuoteDateTime)) as varchar(4)) +
    						right('0' + cast(datepart(month, max(QuoteDateTime)) as varchar(2)), 2) +
    						right('0' + cast(datepart(day, max(QuoteDateTime)) as varchar(2)), 2) + ' 23:59'
    				from CloseQuote
    				where
    					QuoteDateTime < dateadd(day, 1, @currDate)			
    			) and 
    			[Money] is not null and 
    			ClientID = @clientID
    	)  and 
    	[Money] is not null and 
    	ClientID = @clientID
    	order by ID desc

    Разбить datetime на год, месяц, день. Отдельно каждое начение привести к чару, собрать из них строку даты... Ну и посравнивать ее с такой же шедеврашьной строкой...
    А да... и все это в мега-курсоре для каждой даты...
    Другой вариант для данной задачи, хотябы cast(OperationDateTime as date) cast(QuoteDateTime as date), неприемлем категорически:):):):):)::)

    38popugaev, 26 Марта 2010

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

    +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
    21. 21
    22. 22
    23. 23
    24. 24
    public partial class Form1 : Form
    {
    	// ...
    
    	public Form1()
    	{
    		InitializeComponent();
    
    		// If Connection string empty
    		if (XmlConfig.GetPropetry("ConnectionString", "ConnectionString") == "")
    		{
    			MessageBox.Show("Type connection option in the next window", "Connection String is empty", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    			frmOptions dlg = new frmOptions();
    			dlg.ConnectionString = true;
    			if (dlg.ShowDialog() == DialogResult.OK)
    			{
    				System.Diagnostics.Process.Start(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Application.exe"));
    			}
    			Close();
    		}
    		// ...
    	}
    	// ...
    }

    В конструкторе главного окна приложения проверяется есть ли в конфиге строка подключения к базе. Если нет, то открывается окошко с опциями для ввода параметров подключения к базе. При успешном вводе сохраняется строка подключения в конфиг и программа перезапускается, чтобы загрузиться с новой строкой подключения))) Пришлось вот переделывать такую программу, после другого программиста. Как можно было до такого додуматься понять не могу)))

    archer, 24 Марта 2010

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