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

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

    +130

    1. 1
    2. 2
    3. 3
    #define FOO     /* a macro with a multiline comment
                     * gets the linecount wrong
                     */

    Splint will miscalculate line numbers after multi-line comments in macro definitions. For example,

    rat4, 30 Апреля 2012

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

    +130

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(int j =0;j<d[i]/2;++j){
        char e[2] = {0,'\0'};
        const char* g = &e[0];
        e[0] = dict[i];
        s0.append(g);           
    }

    Нужен был const char*

    Abbath, 22 Апреля 2012

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

    +130

    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
    int i,j;
    	char alph[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	//Подстановка по таблице 1
    	int S_there[26][8]={{1,0,0,1,1,0,0,1},{1,0,0,0,1,0,0,0},{1,0,1,0,1,0,1,0},{0,0,1,1,0,0,1,1},{1,1,1,0,0,0,0,1},
    {1,0,0,0,0,1,1,1},{1,1,1,1,1,1,1,1},{1,1,0,1,0,0,1,0},{0,1,1,1,1,0,0,0},{1,1,0,0,0,0,1,1},{1,0,1,0,0,1,0,1},{0,1,0,0,1,0,1,1},
    {0,0,0,1,1,1,1,0},{0,1,0,1,0,1,0,1},{1,1,0,0,1,1,0,0},{0,0,0,1,0,0,0,1},{1,1,0,1,1,1,0,1},{1,0,1,1,0,1,0,0},{0,0,1,0,1,1,0,1},
    {0,0,0,0,0,0,0,0},{0,1,1,0,0,1,1,0},{0,1,0,0,0,1,0,0},{1,1,1,1,0,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,0,1,0,0,1},{0,0,1,0,0,0,1,0}};
    	
    	char str[]="THIISATESTFILEFORCHECKINGCYPHERMODULE";
    	int len=strlen(str);
        	int num[len];//массив с порядковыми номерами
    	int vector[len][8];//массив с ОТ, переведённым в двоичные вектора длины 8
    
    	for (i=0; i< len; i++)//Присваиваем каждой букве порядковый номер (а=0,b=1 и т.д.)
    	{
    		num[i]=((strchr(alph, str[i])-alph)% 26 + 0x01);
    		num[i]--;
    	}
    
    	for (i=0; i<len; i++)//Меняем букву на двоичный вектор длины 8 согласно порядковому номеру
    	{
    		int number=num[i];//счётчик текста
    		for (j=0; j<8; j++)
    		{
    			vector[i][j]=S_there[number][j];
    		}
    	}
    	for (i=0; i<len; i++)//Вывод на экран ОТ
    	{
    		for (j=0; j<8; j++)
    		{
    			printf("%u",vector[i][j]);
    		}
    		printf(" %c\n",str[i]);
    	}

    Нашёл в своей очень старой лабе...Нужно было буквы на входе преобразовать в двоичные вектора (например, а=10011001, b=10001000 и т.д.) ну и дальше ковыряться с этими векторами...почему я категорически не захотел тогда использовать case - хз :)))

    Pecho, 29 Марта 2012

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

    +130

    1. 1
    public void GetLocalUsers(out List<string> members) { ... }

    Первый раз вижу что-то подобное.

    fr0mrus, 06 Марта 2012

    Комментарии (31)
  6. Куча / Говнокод #9417

    +130

    1. 1
    2. 2
    3. 3
    li.sexy-diigo, li.sexy-diigo:hover, li.sexy-digg, li.sexy-digg:hover, li.sexy-reddit, li.sexy-reddit:hover, li.sexy-stumbleupon, li.sexy-stumbleupon:hover, li.sexy-delicious, li.sexy-delicious:hover, li.sexy-yahoobuzz, li.sexy-yahoobuzz:hover, li.sexy-blinklist, li.sexy-blinklist:hover, li.sexy-technorati, li.sexy-technorati:hover, li.sexy-facebook, li.sexy-facebook:hover, li.sexy-twitter, li.sexy-twitter:hover, li.sexy-myspace, li.sexy-myspace:hover, li.sexy-mixx, li.sexy-mixx:hover, li.sexy-scriptstyle, li.sexy-scriptstyle:hover, li.sexy-designfloat, li.sexy-designfloat:hover, li.sexy-mail, li.sexy-mail:hover, li.sexy-comfeed, li.sexy-comfeed:hover, li.sexy-newsvine, li.sexy-newsvine:hover, li.sexy-devmarks, li.sexy-devmarks:hover, li.sexy-linkedin, li.sexy-linkedin:hover, li.sexy-google, li.sexy-google:hover, li.sexy-misterwong, li.sexy-misterwong:hover, li.sexy-izeby, li.sexy-izeby:hover, li.sexy-twittley, li.sexy-twittley:hover, li.sexy-tipd, li.sexy-tipd:hover, li.sexy-pfbuzz, li.sexy-pfbuzz:hover, li.sexy-friendfeed, li.sexy-friendfeed:hover, li.sexy-blogmarks, li.sexy-blogmarks:hover, li.sexy-fwisp, li.sexy-fwisp:hover, li.sexy-designmoo, li.sexy-designmoo:hover, li.sexy-bobrdobr, li.sexy-bobrdobr:hover, li.sexy-yandex, li.sexy-yandex:hover, li.sexy-memoryru, li.sexy-memoryru:hover, li.sexy-100zakladok, li.sexy-100zakladok:hover, li.sexy-moemesto, li.sexy-moemesto:hover, li.sexy-ning, li.sexy-ning:hover, li.sexy-hackernews, li.sexy-hackernews:hover, li.sexy-identica, li.sexy-identica:hover, li.sexy-printfriendly, li.sexy-printfriendly:hover, li.sexy-designbump, li.sexy-designbump:hover, li.sexy-fleck, li.sexy-fleck:hover, li.sexy-netvibes, li.sexy-netvibes:hover, li.sexy-netvouz, li.sexy-netvouz:hover, li.sexy-nujij, li.sexy-nujij:hover, li.sexy-globalgrind, li.sexy-globalgrind:hover, li.sexy-wikio, li.sexy-wikio:hover, li.sexy-xerpi, li.sexy-xerpi:hover, li.sexy-sphinn, li.sexy-sphinn:hover, li.sexy-blogospherenews, li.sexy-blogospherenews:hover, li.sexy-posterous, li.sexy-posterous:hover, li.sexy-techmeme, li.sexy-techmeme:hover, li.sexy-ekudos, li.sexy-ekudos:hover, li.sexy-pingfm, li.sexy-pingfm:hover, li.sexy-tomuse, li.sexy-tomuse:hover {
    	background:url('sexy-sprite.png') no-repeat !important;
    }

    Красивая реализация знатных социальных кнопок... Хотя можно и
    ul.socials li {
    background:url('sexy-sprite.png') no-repeat;
    }

    nonamez, 14 Февраля 2012

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

    +130

    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
    BOOL CMarkup::Search(CString OprName, CString strSQL, short nType)
    {
    
    ...
    	
    	sCommandLine = sPath.Left(nPos)+ _T("\\Getorder.exe search ")+OprName+_T(" ")+strSQL+_T(" ")+strType;
    	::wcscpy(cCommandLine, sCommandLine);
    
    	BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
    	if (ret) {
    		CloseHandle(pi.hThread );						//Close the thread handle as soon as it is no longer needed.
    		WaitForSingleObject(pi.hProcess, INFINITE);		//Suspend our execution until the child has terminated.
    		GetExitCodeProcess(pi.hProcess ,&dwExitCode);	//The child process terminated;get its exit code.
    		//if(dwExitCode == STILL_ACTIVE) TerminateProcess(pi.hProcess, 0);
    		CloseHandle(pi.hProcess);						//Close the process handle as soon as it is no longer needed.
    	}
    
    	CString ss,s;
    	ss = _T("s.txt");
    
    	CStdioFile in;
    	if(!in.Open (sPath+_T("\\")+ss,CFile::modeRead | CFile::typeBinary))
    		return TRUE;
    
    	while(in.ReadString(s))
    	{
    		s.TrimLeft();
    		s.TrimRight();
    		if(s != _T("**********")) continue;
    
    		ORDERTYPE m_OrderData;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OprName = s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.Language =s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OrderNo =s;
    
    ...
    
    	}
    
    	in.Close();
    	DeleteFile(sPath+_T("\\")+ss);

    Прислали исходники приложения на C++ с MFC. Там просто один сплошной ГК от начала и до конца, но это место просто убило.

    Задача - найти заказ в базе данных MSSQL по SQL-запросу. Для этого они запускают отдельное приложение .NET, которое подключается к базе и дампит запись в текстовый файл, а приложение C++ из него читает.

    someone, 25 Января 2012

    Комментарии (13)
  8. Куча / Говнокод #9212

    +130

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    %matlab
        check=fread(fid,8,'uchar');
        if sum(check == [255,255,255,255,255,255,255,255]')~=8
            return;
        end

    Способ проверки того, что 8 прочитанных байт суть 0xFF.

    kokorins, 24 Января 2012

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

    +130

    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
    public static string Handle(System.Exception exception)
            {
                try
                {
                    throw exception;
                }
                catch (System.Net.WebException ex)
                {
                    ...
                }
                catch (System.Web.Services.Protocols.SoapHeaderException ex)
                {
                    ...
                }
                catch (System.Web.Services.Protocols.SoapException ex)
                {
                    ...
                }
                catch (ArgumentNullException ex)
                {
                    ...
                }
                catch (NullReferenceException ex)
                {
                    ...
                }
                catch (Exception ex)
                {
                    ...
                }
            }

    кусок кода в чужом проекте, который сейчас допиливаю :(

    shtaff, 19 Января 2012

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

    +130

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void _device_ChangeStsConnect(bool Conn)
    {
    	switch ( Conn )
    	{
    		case true: Start( ); break;
    		case false: Stop( ); break;
    		default: break;
    	}
    }

    ivan-petrov, 07 Ноября 2011

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

    +130

    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
    public void ExportOrderDetails()
            {
                char comma = ',';
                StringBuilder sb = new StringBuilder();
                string line = "";
    
                line += "Order No" + comma;
                line += "Customer" + comma;
                line += "Order Date" + comma;
                line += "Order Status" + comma;
                line += "Subtotal" + comma;
                line += "Tax Total" + comma;
                line += "Shipping Cost" + comma;
                line += "Shipping Method" + comma;
                line += "Order Total" + comma;
                line += "Payment Method" + comma;
                line += "Total Quantity" + comma;
                line += "Date Shipped" + comma;
                line += "Tracking No" + comma;
                line += "Order Currency Code" + comma;
                line += "Exchange Rate" + comma;
                line += "Billing First Name" + comma;
                line += "Billing Last Name" + comma;
                line += "Billing Company" + comma;
                line += "Billing Address" + comma;
                line += "Billing Address 2" + comma;
                line += "Billing City" + comma;
                line += "Billing Zip" + comma;
                line += "Billing State Code" + comma;
                line += "Billing Country ISO2" + comma;
                line += "Billing Phone" + comma;
                line += "Billing Phone 2" + comma;
                line += "Billing Email" + comma;
                line += "Shipping First Name" + comma;
                line += "Shipping Last Name" + comma;
                line += "Shipping Company" + comma;
                line += "Shipping Address" + comma;
                line += "Shipping Address 2" + comma;
                line += "Shipping City" + comma;
                line += "Shipping Zip" + comma;
                line += "Shipping State Code" + comma;
                line += "Shipping Country ISO2" + comma;
                line += "Shipping Phone" + comma;
                line += "Shipping Phone 2" + comma;
                line += "Shipping Email" + comma;
    
                line += "Combined Product Weight" + comma;
                line += "Product Qty" + comma;
                line += "Product SKU" + comma;
                line += "Product Name" + comma;
                line += "Product Variation Details" + comma;
                line += "Product Unit Price" + comma;
                line += "Product Unit Cost" + comma;
                line += "Product Weight" + comma;
                line += "Product Total Price" + comma;
                line += "Product Total Cost" + comma;
    
    
    
                sb.AppendLine(line.Remove(line.Length - 1));
     
                Response.ContentType = "application/vnd.ms-excel";
                Response.AddHeader("Content-Disposition", "attachment; filename=orders-details-" + DateTime.Now.ToString("yyyy-MM-dd") + ".csv");
                Response.ContentEncoding = Encoding.Default;
                Response.Write(sb.ToString());
                Response.End();
    
            }

    Норм так)

    sergfreest, 01 Ноября 2011

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