1. 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)
  2. Java / Говнокод #9218

    +69

    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
    int limit = 10;
            int countNews = daoService.getCountNews();
            int currentPage = 1;
            if (linkOffset != 0) {
                currentPage += linkOffset / limit;
            }
            int offset = countNews - (linkOffset + limit);
            if (offset < 0) {
                offset = 0;
                limit = (countNews - (linkOffset + limit)) + limit;
            }
    
            List newsList = daoService.getLimitNews(limit, offset);
            List news = new ArrayList();
            int index = 0;
            for (int i = newsList.size() - 1; i >= 0; i--) {
                news.add(index, newsList.get(i));
                index++;
            }
    
    //DaoService.getLimitNews:
        public List getLimitNews(String owner, int limit, int offset) {
            return super.getSimpleJdbcTemplate().query(
                    "SELECT * FROM news WHERE owner=? AND apply=? AND local=? "
                    + "ORDER BY created limit ? offset ?",
                    new NewsMapper(),
                    owner, true, true, limit, offset);
        }

    Получение списка новостей в ленте в обратном хронологическом порядке.

    0rt, 25 Января 2012

    Комментарии (3)
  3. Java / Говнокод #9217

    +64

    1. 1
    2. 2
    3. 3
    if (MaritalStatus.S == prevMaritalStatus && MaritalStatus.M == maritalStatus) {
        studentOver100MilesFromHome = false;
    }

    Философский код

    roman-kashitsyn, 25 Января 2012

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

    −137

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

    Конфа Бухгалтерия 2.0 - официальный код 1С. Просто нет слов.

    1. Передаваемый процедуре параметр "СписокСчетов" по умолчанию имеет значение "".
    2. В первом "Если" идет инициализация объекта "ФормаВыбораСчета", но в это "Если" мы попадем не всегда (п.1)
    3. Ну а дальше без всякого рода сомнений происходит получение реквизита объекта, который на ура может быть неинициализированным: ПолеОтбора = ФормаВыбораСчета.Отбор.Код

    1С - ты всегда будешь в нашей памяти, СЦУКО!

    squeez, 25 Января 2012

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

    +151

    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
    foreach ($project as $key => $value) {
        if (!in_array($key, array('homepage'))) {
            if (isset($_POST['project'][$key])) {
                if (in_array($key, array('cast', 'client', 'related'))) {
                    $project->$key = $this->typograf($_POST['project'][$key]);
                } else {
                    $project->$key = $_POST['project'][$key];
                }
            }
        } elseif ($key == 'homepage') {
            $project->$key = isset($_POST['project'][$key]) ? 1 : 0;
        }
    }

    Обработка формы в проекте на yii, который мне приходится рефакторить

    dizballanze, 25 Января 2012

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

    +70

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static void getUsers(User[] users)
    {
    		boolean b,bb;
    		for(int x=0;x<users.length;x++)
    			{
    				b=users[x].getNick().equals("------");
    				bb=users[x].getPassword().equals("------");
    				if (b==false && bb==false) {System.out.println("ник : "+users[x].getNick()+", пароль: "+users[x].getPassword()+", id: "+users[x].id+", " +"репутация: "+users[x].reputation);}
    				else {System.out.println("          НЕТ ДАННЫХ.        ");}
    			}
    }

    http://programmersforum.ru/showthread.php?t=185055

    Как по мне так забавно

    denis90, 24 Января 2012

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

    +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
    [TestInitialize]
            public void Init()
            {
                relashions = new List<PersonRelationship>();
                relashions.Add( new PersonRelationship()
                {
                    PersonId = 1,
                    RalationshipPersonId = 2,
                    RelationshipTypeId = (int)DAL.Dictionaries.RelationshipType.Friend
                });
    
                relashions.Add(new PersonRelationship()
                {
                    PersonId = 1,
                    RalationshipPersonId = 2,
                    RelationshipTypeId = (int)DAL.Dictionaries.RelationshipType.Friend
                });
                
                relashions.Add(new PersonRelationship()
                {
                    PersonId = 2,
                    RalationshipPersonId = 1,
                    RelationshipTypeId = (int)DAL.Dictionaries.RelationshipType.Friend
                });
            }
    
    [TestMethod()]
            public void GetMyFriends_Get_Success()
            {
                long personId = 1;
    
                var relationService = new Mock<IRelationService>();
                relationService.Setup(c => c.GetMyFriends(personId)).Returns
                    (
                        from rl in relashions.Where(r => r.PersonId == personId && r.RelationshipTypeId == (int)DAL.Dictionaries.RelationshipType.Friend)
                        select new PersonShortDescriptionViewModel()
                        {
                            FirstName = personId.ToString(),
                            LastName = personId.ToString(),
                        }
                     );
    
                var friends = relationService.Object.GetMyFriends(personId);
                Assert.IsNotNull(friends);
            }

    Найден правильный метод написания тестов!

    Hych, 24 Января 2012

    Комментарии (4)
  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. SQL / Говнокод #9211

    −114

    1. 1
    2. 2
    declare @date datetime
    set @date=convert(datetime, cast(day(getdate()) as varchar(2))+'.'+cast(month(getdate()) as varchar(2))+'.'+cast(year(getdate()) as char(4)), 105)

    MS SQL
    Так и не удалось выяснить, почему автор не написал просто
    set @date=getdate()

    German_1984, 24 Января 2012

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

    −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
    SELECT *
    FROM table1
    WHERE
    COALESCE(
      field1,
      field2,
      field3,
      field4,
      field5,
      fieldN,  
      "lol"
    )!="lol"

    huitka, 24 Января 2012

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