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

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

    +119

    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
    // создаём источник для репитера
    
    private DataTable EventsDataTable
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(
                        new DataColumn("ID", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("day", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("date", typeof(DateTime)));
                    dt.Columns.Add(
                        new DataColumn("title", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("url", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("description", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("location", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("place", typeof(string)));
                    dt.Columns.Add(
                        new DataColumn("FileDirRef", typeof(string)));
                    // Добавляем строчки
                    foreach (EventInfo ei in CalendarEvents)
                    {
                        DataRow dr = dt.NewRow();
                        dr["day"] = ei.EventDate.Date.ToString("ddMMyyyy");
                        dr["date"] = ei.EventDate;
                        dr["title"] = ei.Title;
                        dr["location"] = ei.Location;
                        dr["ID"] = ei.ID;
                        dr["FileDirRef"] = ei.FileDirRef;
                        dt.Rows.Add(dr);
                    }
                    return dt;
                }
            }
    
    
    protected void repeaterItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    if (e != null
                        && e.Item != null
                        && e.Item.DataItem != null
                        && e.Item.DataItem is DataRow)
                    {
                        DataRow dataItem = (DataRow)e.Item.DataItem;
    
                        Label date = (Label)(e.Item.FindControl("date"));
                        date.Text = 
                            dataItem["date"] != null
                            ? Convert.ToDateTime(dataItem["date"].ToString()).ToString()
                            : Convert.ToDateTime(dataItem["Created"].ToString()).ToString();
                        date.Text = date.Text.Substring(0, date.Text.Length - 3);
    
                        HyperLink title = (HyperLink)(e.Item.FindControl("title"));
                        title.Text = dataItem["title"].ToString();
                        Label location = (Label)(e.Item.FindControl("location"));
                        location.Text = "Расположение: " + dataItem["location"].ToString();
                    }
    }

    Современный способ привязки данных в asp.net Repeater

    Gnet, 22 Июня 2011

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    case 43: /* + */
        sum_up += sum_up > 1 ? 0 : 1;
        return 1;
    case 45: /* - */
        sum_up -= sum_up < 1 ? 0 : 1;
        return 1;

    Если выше/ниже лимита то добавляем/отнимаем ничего.

    ЗЫ sum_up это переменная контролирующая уровень вербозности (0,1,2) специальной мониторной проги. кнопками +/- можно интерактивно контролировать. К слову, сверху это уже правленый код. Оригинальный оригинал:

    if (c == 43) { sum_up = sum_up > 1 ? sum_up : ++sum_up; return 1; }
    if (c == 45) { sum_up = sum_up < 1 ? sum_up : --sum_up; return 1; }

    Dummy00001, 16 Июня 2011

    Комментарии (41)
  4. Java / Говнокод #6945

    +83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    try
    		{
    			nIndex = Integer.parseInt(sRowIndex.trim());
    		}
    		catch(NumberFormatException e)
    		{
    			//异常处理
    			nIndex = -2;
    		}
    		if(nIndex < 0) return;

    Китайцы продолжают отжигать.

    lucidfox, 14 Июня 2011

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

    +167

    1. 1
    $r = $this->client->getBerechneteGrundversorgungsTarifebyPLZundVerbrauchKundenart($this->params);

    По сути не говнокод, но нечитабельность налицо...

    vov4ik, 13 Июня 2011

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

    +158

    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
    public function getRelatedDataProvider($relationName,$config=array(),$params=array()){
    		
    		$md = $this->getMetaData();
    		if(!isset($md->relations[$relationName])){
    			throw new CDbException(Yii::t('yii','{class} does not have relation "{name}".',
    				array('{class}'=>get_class($this), '{name}'=>$relationName)));
    		}
    		
    		$relation = $md->relations[$relationName];
    		if(!($relation instanceof CHasManyRelation || $relation instanceof CManyManyRelation)){
    			throw new CDbException(Yii::t('yii','Связь {class}.{name} имеет тип, отличный от Has_Many и Many_Many.',
    				array('{class}'=>get_class($this), '{name}'=>$relationName)));
    		}
    		
    		// return new CArrayDataProvider($this->getRelated($relationName,true,$params), $config);
    		
    		var_dump($relation);
    		
    		// копируем критерии из связи
    		$criteria = new CDbCriteria;
    		foreach(array('select', 'condition', 'params', 'limit', 'offset', 'order', 'group', 'join', 'having', 'with', 'alias', 'index', 'together') as $param){
    			$criteria->$param = $relation->$param;
    		}
    		
    		// склеиваем параметры с критерией
    		$criteria->mergeWith(
    			is_string($params)
    				? array('condition' => $params)
    				: $params
    		);
    		
    		// добавляем связь через fk
    		// ВОТ ТУТ Я НИЧЕГО НЕ ПОНИМАЮ :)
    		$thisTable = $this->getTableAlias();
    		$childModel = CActiveRecord::model($relation->className);
    		$childMd = $childModel->getMetaData();
    		$childTable = empty($relation->alias) ? $childModel->getTableAlias() : $relation->alias;
    		//$criteria->join .= " {$relation->joinType} {$thisTable} ON {$thisTable}.{$relation->foreignKey}={$childTable}.{$childMd->tableSchema->primaryKey}";
    		$criteria->params[':fkrel'] = $this->{$relation->foreignKey};
    		$criteria->addCondition("{$childTable}.{$relation->foreignKey}=:fkrel");
    		
    		
    		// собираем кофиг для CActiveDataProvider
    		$dpConfig = array(
    			'criteria' => $criteria,
    		) + $config;
    		
    		echo "CActiveDataProvider( {$relation->className} , criteria: ".var_export($dpConfig['criteria']->toArray(),true)." )";
    		
    		// 
    		$dataProvider = new CActiveDataProvider(
    			$relation->className,
    			$dpConfig
    		);
    		
    		return $dataProvider;
    	}
    	
    }

    res-nullis, 26 Мая 2011

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

    +128

    1. 1
    long.Parse(Convert.ToString(Convert.ToSingle(Item.Value.ToString())))

    wiz, 17 Мая 2011

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

    +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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    public static function create_folder ( $path, $rights = self::default_rights )
    	{
    		$result = true;
    		// Получаем список папок
    		$folders = explode( DIRECTORY_SEPARATOR, trim( self::get_absolute_path( $path ), DIRECTORY_SEPARATOR ) );
    		$exists = true;
    		// Ищем существующую папку
    		while ( $exists && sizeof( $folders ) )
    		{
    			$exists_folder[] = array_shift( $folders );
    			$exists = realpath( implode( DIRECTORY_SEPARATOR, $exists_folder ) );
    		}
    		if ( !file_exists( implode( DIRECTORY_SEPARATOR, $exists_folder ) ) )
    		{
    			array_unshift( $folders, array_pop( $exists_folder ) );
    		}
    		$parent = implode( DIRECTORY_SEPARATOR, $exists_folder );
    		unset( $exists_folder );
    		// поочередно создаем папки
    		foreach ( $folders as & $folder )
    		{
    			$parent .= DIRECTORY_SEPARATOR . $folder;
    			$result = mkdir( $parent, $rights );
    		}
    		clearstatcache( );
    		return $result;
    	}

    Вот что значит не знать про необязательный аргумент recursive у mkdir...

    GhOsTMZ, 14 Февраля 2011

    Комментарии (41)
  9. Куча / Говнокод #5313

    +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
    .стиль3 {font-family: Arial; font-size: 22px; font-style: italic;}
    .стиль4 {font-family: Arial; font-size: 18px; font-style: italic; color: rgb(102,0,0);}
    .стиль5 {font-family: Arial; font-size: 18px; font-weight: bold; color: rgb(0,0,204);}
    .стиль6 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(32,0,240);}
    .стиль7 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(48,0,240);}
    .стиль8 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(64,0,240);}
    .стиль9 {font-family: Arial; font-size: 24px; font-weight: bold; color: rgb(255,0,0);}
    .стиль108 {font-family: Arial, sans-serif; font-size: 8px; font-weight: bold; color: rgb(64,0,240);}
    .стиль111 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt;}
    .стиль10 {font-family: Arial, sans-serif; font-size: 10px; font-weight: bold; color: rgb(64,0,240);}
    .стиль12 {font-family: Arial; font-size: 12px; font-weight: bold; color: rgb(64,0,240);}
    .стиль14 {font-family: Arial; font-size: 14px; font-weight: bold; color: rgb(255,0,0);}
    .стиль15 {font-family: Arial; font-size: 12px; color: rgb(0,0,255);}
    .стиль16 {font-family: Arial; font-size: 16px; font-style: italic; color: rgb(255,0,0);}
    .стиль36 {font-size: 36px; color: rgb(102,0,204);}
    .стиль18 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; color: rgb(102,0,0);}

    Цссник сайта одного препода. Я чуть под стол не упал когда увидел:)
    Даешь браузерам цсс кирилицей!

    moonie, 18 Января 2011

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

    +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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    struct 
    {
    	unsigned char * low;  //младшая часть адреса
      	unsigned char * high; //страшая часть адреса(только младших 3 бита)
    } padr;
    
    void filladdr(unsigned int * addr) //подготовка адресных ног МК
    {
    	padr.low = (unsigned char *)addr;
    	padr.high = padr.low + 1;
    	PORTB = *padr.low;
    	PORTE &= 0x8;
    	PORTE |= *padr.high;
    
    }
    
    unsigned char readFromSRAM(unsigned int * adrss)
    {
    	char outD;
    	TRISD = 0xFF;
    	filladdr(adrss);
    	PORTA &= 0xFC;
    	NOP(); // задержка на время доступа
    	outD = PORTD;
    	PORTA |= 0x7;
    	return outD;
    }
    
    void writeToSRAM(unsigned int * adrss, unsigned char * data)
    {
    	TRISD = 0x0;
    	filladdr(adrss);
    	PORTD = *data;
    	PORTA &= 0xF8;
    	NOP();  // задержка на время доступа
    	PORTA |= 0x7;
    	PORTD = 0x0;
    }

    говнокод для работы с 2кб внешней SRAM памяти для микроконтролеров pic

    nice_penguin, 02 Января 2011

    Комментарии (41)
  11. Pascal / Говнокод #4943

    +92

    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
    unit uncrt;
    
    interface
    
    procedure ClrScr;
    procedure Sound(Hz: Word);
    procedure NoSound;
    
    procedure TextColor(Color: Byte);
    procedure TextBackground(Color: Byte);
    
    var
      TextAttr: Byte; { Для особо продвинутых случаев }
    
    implementation
    
    procedure ClrScr;
    begin end;
    
    procedure Sound(Hz: Word);
    begin end;
    procedure NoSound;
    begin end;
    
    procedure TextColor(Color: Byte);
    begin end;
    procedure TextBackground(Color: Byte);
    begin end;
    
    end.

    Вас достала школота, раскрашивающая свои бибикающие программы?
    Вам поможет этот модуль!

    TarasB, 16 Декабря 2010

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