1. C++ / Говнокод #14114

    +11

    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
    void run(std::map<QString, QString> params,QTextStream &os) const
    	{
    
    		static int ko=0;
    			ko++;
    			//r->method_="GET";
    			srand(time(0));// без этого числа будут одинаковые
    			QString  randomData="["+ (QString::number(ko))+" , "+ (QString::number(rand()%100))+ "]";
    			//int index= params["idChpu"].toInt();
    			std::list<QString> idsparams=getIdsDataRequest(params["dataRequestIds"]);
    			QString dataInIds="";
    			//for (auto idParam=idsparams.begin();idParam!=idsparams.end();idParam++)
    			for (const auto &idParam : idsparams)
    			{
    				qDebug()<<idParam;
    				auto kokoFunction=[](const std::function<QString()> & function){QString date; for(auto i=0 ;i<10;i++){date+= function()+QString(" , ");} ; return date;};
    				if (idParam==QString("id0"))
    				{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number((ko++));})+QString::number((ko++))+QString("],");}
    				else
    				{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number(rand()%100);})+QString::number(rand()%100)+QString("],");}
    			};
    			QString jsonData=QString("{")+
    						QString("\"idLastKey\":\"10\",")+dataInIds+QString("}");
    
    		qDebug()<<"TgetDataOnRequest run</h1>";
    		os << "HTTP/1.0 200 Ok\r\n"
    				"Content-Type: text/html; charset=\"windows-1251\"\r\n"
    				"\r\n"<<jsonData<<//randomData<<
    				"\n";
    
    //				  << QDateTime::currentDateTime().toString() << connectionSettings.getUrl()<<"\r\n"<<connectionSettings.getViewRequest()<<"\n";
    	}

    Надеюсь это временный код, но очень сомневаюсь.

    laMer007, 20 Ноября 2013

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

    +16

    1. 1
    2. 2
    const TReferenceToConstantStringSlice TFileTransfer::Beginer="<HTML><HEAD><FONT SIZE=6><A HREF='/'>Конфиденциально</A></FONT SIZE></HEAD><BODY><BR>";
    const TReferenceToConstantStringSlice TFileTransfer::Ender="</BODY></HTML>";

    Конфиденциально - это я сейчас стер.

    laMer007, 20 Ноября 2013

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

    +153

    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
    //поменяет src картинки на cid и вернет массив с дополнительными секциями тела письма
    function convert_image_src($text, &$new_section_arr){
    	global $_SERVER;
    	
    	//расчленяем текст на куски по img
    	$new_src_arr=array();//массив путей к картинкам
    	$arrTmp=explode("<img", $text);
    	$explode_str=array("\\\"", "\"", "'");
    	
    	for($i=1; $i<sizeof($arrTmp); $i++){
    		$arrTmp2=explode("src=", $arrTmp[$i]);
    		
    		for($j=1; $j<sizeof($arrTmp2); $j++){
    			for($k=0; $k<sizeof($explode_str); $k++){
    				if(substr($arrTmp2[$j], 0, strlen($explode_str[$k]))==$explode_str[$k]){
    					$arrTmp3=explode($explode_str[$k], $arrTmp2[$j]);
    					
    					//считать можем только картинки с того же сервера  - остальные побоку
    					if(ref_is_server($arrTmp3[1])){
    						$old_src_arr[]=$arrTmp3[1];
    						$new_src_arr[]=convert_url_2_full_server($arrTmp3[1]);
    					}
    				}
    			}
    		}
    	}
    	
    	//теперь формируем новые секции
    	for($i=0; $i<sizeof($new_src_arr); $i++){
    		$file_arr=get_file_content($new_src_arr[$i], true);
    		if(strlen($file_arr[0])>0){
    			//запоминаем секцию
    			$new_section_arr[]=$file_arr[0];
    			//заменяем ссылку на cid
    			$text=str_replace($old_src_arr[$i], "cid:".$file_arr[1], $text);
    		}
    	}
    	
    	return $text;
    }

    Супер функция, которая парсит картинки в тексте и заменяет на, как я понял, новые ссылки уже на собственном сервере.
    Пока пытался разобраться, наступил когнитивный диссонанс.

    oooZinka, 20 Ноября 2013

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

    −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
    Запрос.Текст = ""
    //...
    ГДЕ
    	ВЫБОР
    		КОГДА ЕСТЬNULL(ВТМоделиПоставщика.КодМоделиПоставщика, "") = ""
    			ТОГДА 0
    		ИНАЧЕ 1
    	КОНЕЦ = 0
    //...
    
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    		Если  СтрДлина(ВыборкаДетальныеЗаписи.КодМоделиПоставщика) <> 0 Тогда 
                    //...
                    КонецЕсли;
    КонецЦикла;

    Масло масляное. Захочешь нарочно такое придумать - не получится.

    rull9ss, 20 Ноября 2013

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

    +153

    1. 1
    http://froland.ru/samodel/myart_js1.html

    Я хотел бы это развидеть.

    nsauk, 20 Ноября 2013

    Комментарии (0)
  6. Pascal / Говнокод #14109

    +138

    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
    // прога у нас многопоточная, данный код выполняется в потоке. Создание и настройка Idhttp прописана в конструкторе потока.
    while not terminated do
        begin
           synchronize(ReadProxy);
            if ThreadExit then break;
            try
               memorystream.Position:=0;
              try
                idHTTP.Get(linknew,memorystream);
                idhttp.disconnect;
              except
                idhttp.Disconnect;
              end;
              finally
                temp:=memorystreamtostring(memorystream); // если этого не сделать, память будет утекать.
                memorystream.clear;
              end;

    Я нашел способ предотвратить утечки памяти в Indy, при Get-запросе -
    многие грешат на Indy, мол, нестабильная она в потоках, провоцирует утечки.
    Оказалось, что дело-то в tmemorystream, я его маму бля ебал!!!

    Stertor, 19 Ноября 2013

    Комментарии (5)
  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. C++ / Говнокод #14106

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void operator()()
    	{
    		for (std::list<SmartPointer<FunctorTriggerParent > >::iterator it = _listFunctorOnTrigger.begin(); it != _listFunctorOnTrigger.end(); ++it)
    		{
    			(*it)->operator ()();
    		}
    	};

    laMer007, 18 Ноября 2013

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

    +154

    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
    class Icon extends IconBuilder
    {
    	public static function create($type, $white = false)
    	{
    		$class = __CLASS__;
    		return new $class($type, $white);
    	}
    
    	public function getType()
    	{
    		return $this->_type;
    	}
    
    	public function getWhite()
    	{
    		return $this->_white;
    	}
    }

    Код выдернут из Bootstrap.PHP http://allking.ru/bootstrap.php/
    Особое внимание уделить функции create и константе __CLASS__
    Вопрос: почему не обойтись просто self? В чем магия?

    З.Ы.: Пока писал, нашел в доках, что "волшебная" константа содержит так же пространство имен.
    Извиняюсь, что не узнал об этом раньше.
    Но я все же наложу сюда, с вопросом, даже учитывая всю эту информацию, почему мы не можем обойтись способами, исключающими использование константы?
    (все равно получается говнокод, хоть и работающий)

    oooZinka, 18 Ноября 2013

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

    +159

    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
    $st=$_GET['st'];
    
    // проверяем допустимый номер категории
    if ((((((($st != "1")&($st != "2"))&($st != "3"))&($st != "4"))&($st != "5"))&($st != "6")&($st != "7")&($st != "8")&($st != "0"))) {$st="0";};
    
    // Гениальная реализация отношения многие-ко-многим - по флагу на каждый номер категории, проверяем какой флаг установлен
    $zapros = "
    	SELECT
    		product.cod,
    		product.`name`,
    		sector.s0,
    		sector.s1,
    		sector.s2,
    		sector.s3,
    		sector.s4,
    		sector.s5,
    		sector.s6,
    		sector.s7,
    		sector.s8
    	FROM
    		product ,
    		sector
    	WHERE
    		product.cod = sector.cod AND sector.s".$st."=1
    	ORDER BY
    		product.id ASC
    	";

    Вот такой код мне попался в самописном магазине, который заказали доработать (

    mkramer, 16 Ноября 2013

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