1. PHP / Говнокод #3306

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    switch(true)
    {
     case tag1: /*тут обработка*/break;
     case tag2: /*тут обработка*/break;
     case tag3: /*тут обработка*/break;
     case tag4: /*тут обработка*/break;
    }

    Короче это был кусок парсера SGML файла, который в зависимости от встреченного тега выполнял действия. Этот код недословный, привожу чтоб показать как использовалась конструкция switch. На мой взгляд изящный подход =)

    shurikroger, 25 Мая 2010

    Комментарии (18)
  2. PHP / Говнокод #3305

    +164

    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
    /**
     * Constructs a URL encoded query string from an array of key/value pairs
     *
     * @access protected
     * @since 2.0
     * @param array $array query string key/value pairs
     * @return string
     */
    protected function _glue( $array )
    {
        $query_string = '';
        foreach( $array as $key => $val ) :
            $query_string .= $key . '=' . rawurlencode( $val ) . '&';
        endforeach;
        
        return '?' . substr( $query_string, 0, strlen( $query_string )-1 );
    }

    http://code.google.com/p/php-twitter/
    опять велосипеды

    striker, 25 Мая 2010

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

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public int someGetCountMethod() {
            try {
                ResultSet rs2 = db.select("call someGetCountMethod('')");
                rs2.first();
                return rs2.getInt(1);
            } catch (Exception ex) {
                return 0;
            }
        }

    где-то откапал вот такое

    zlob.jc, 25 Мая 2010

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

    +157

    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
    // если IP в файле есть, выводим сообщение с уведомлением
    if ($file[$i]===$ip."\r\n"){
    	echo 'Вы уже голосовали. Но спасибо, что попытались.<br>';
    	break;
    	// если IP нет, тогда считаем рейтинг и записываем IP в файл
    } elseif ($file[$i]!=$ip."\r\n") {
    	// ********* СЧИТАЕМ РЕЙТИНГ *********
    	// открываем файл с рейтингом
    	$file_open=fopen("rate.txt", "a+");
    	$file_read=fgets($file_open);
    	// разбиваем данные по спецсимволу ':'
    	$dan=explode(":",$file_read);
    	// первое значение - сумма всех оценок, второе - кол-во проголосовавших юзеров
    	// добавляем к сумме оценок - полученную новую оценку
    	// добавляем к сумме юзеров - 1 человека
    	if ($_POST['rating_val']>=1 && $_POST['rating_val']<=5){
    	$r=$_POST['rating_val'];
    	$ocenka=$dan[0]+$r;
    	$users=$dan[1]+1;
    	$write=$ocenka.':'.$users;
    	ftruncate ($file_open, 0);
    	fwrite($file_open, $write);
    	}
    	// рейтинг считаем по формуле: (сумма оценок + текущая оценка) / (кол-во юзеров + 1 юзер)
    	$rating=substr(($dan[0]+$r) / ($dan[1]+1),0,3);
    	echo 'Ваш рейтинг: '.$rating.'<br>
    	Всего голосов: '.$users.'<br>';
    	// закрываем файл с рейтингом
    	fclose($file_open);
    	// ************************************
    	fwrite($open_ip, $ip."\r\n");
    	echo 'Ваш голос учтен. Спасибо.<br>'; 
    	break;
    } else {
    	echo 'Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла.<br>
    	Пожалуйста, <a href=mail.php>напишите нам письмо</a> и мы обязательно разберемся.';
    }

    Проверка в скриптике друга. Смотрим самый внешний IF, порадовала ветка else :)

    arsen, 24 Мая 2010

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

    +106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    bool tos = true;
                   susid:
                       while (tos)
                        {
                              goto susid;
                    }

    Энто был я=(

    BlincAttack, 24 Мая 2010

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

    +141

    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
    /* Putarc1 печатает точки, определяющие дугу от 0 до 45.*/
    void Putarc1(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
    	 int  starty, endy, y1;
    	 starty=y; endy=(y+1);
    	 for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,y_center-x,color);
    }
    /* Putarc2 печатает точки, определяющие дугу от 45 до 90.*/
    void Putarc2(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
    	 int startx, endx, x1;
    	 startx=x; endx=(x+1);
    	 for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y_center-y,color);
    }
    /* Putarc3 печатает точки, определяющие дугу от 90 до 135.*/
    void Putarc3(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
    	 int startx,endx,x1;
    	 startx=x; endx=(x+1);
    	 for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y_center-y,color);
    }
    /* Putarc4 печатает точки, определяющие дугу от 135 до 180.*/
    void Putarc4(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
    	 int starty,endy,y1;
    	 starty=y; endy=(y+1);
    	 for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,y_center-x,color);
    }
    /* Putarc5 печатает точки, определяющие дугу от 180 до 225.*/
    void Putarc5(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
    	 int starty,endy,y1;
    	 starty=y; endy=(y+1);
    	 for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,x+y_center,color);
    }
    /* Putarc6 печатает точки, определяющие дугу от 225 до 270.*/
    void Putarc6(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
    	 int startx,endx,x1;
    	 startx=x*1.0; endx=(x+1)*1.0;
    	 for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y+y_center,color);
    }
    /* Putarc7 печатает точки, определяющие дугу от 270 до 315.*/
    void Putarc7(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
    	 int startx, endx, x1;
    	 startx=x; endx=(x+1);
    	 for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y+y_center, color);
    }
    /* Putarc8 печатает точки, определяющие дугу от 315 до 360.*/
    void Putarc8(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color) {
    	 int  starty,endy,y1;
    	 starty=y; endy=(y+1);
    	 for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,x+y_center,color);
    }

    Рисуем дуги кусками по 45 градусов

    absolut, 24 Мая 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?$APPLICATION->IncludeFile(
    			$APPLICATION->GetTemplatePath("include_areas/contacts.php"),
    			Array(),
    			Array("MODE"=>"html")
    		);?> </div>

    Вот так индусские проггеры из Bitrix показывают контакты сайта.

    aleferov, 24 Мая 2010

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

    +170

    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
    function formatbytes($file, $type)  
    {  
        switch($type){  
            case "KB":  
                $filesize = filesize($file) * .0009765625; // bytes to KB  
            break;  
            case "MB":  
                $filesize = (filesize($file) * .0009765625) * .0009765625; // bytes to MB  
            break;  
            case "GB":  
                $filesize = ((filesize($file) * .0009765625) * .0009765625) * .0009765625; // bytes to GB  
            break;  
        }  
        if($filesize <= 0){  
            return $filesize = 'unknown file size';}  
        else{return round($filesize, 2).' '.$type;}  
    }

    Вот так мы выводим размер файлика.

    begmst, 24 Мая 2010

    Комментарии (26)
  9. Pascal / Говнокод #3298

    +103

    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
    var
      resStream: TResourceStream;
      memStream: TMemoryStream;
      DLL: THandle;
      tempFile: string;
    
      excel: variant;
      wbook: OLEVariant;
    begin
      if not IsOLEObjectInstalled('Excel.Application') then
        begin
          MessageBox(Handle, PChar('Для открытия фаблонов форм необходимо установить'+#13+
                                   'Microsoft Excel'), 'Ошибка загрузки формы.', MB_ICONINFORMATION);
          exit
        end;
      tempFile := extractFilePath(paramStr(0))+'DATA\PLUGINS\$temp$.xxx';
      if ListView1.Selected = nil then exit;
      if not FileExists(ListView1.Selected.SubItems.Strings[2]) then exit;
      DLL := loadLibrary(PChar(ListView1.Selected.SubItems.Strings[2]));
      if DLL = INVALID_HANDLE_VALUE then begin
                                           freeLibrary(DLL);
                                           exit
                                         end;
      resStream := TResourceStream.Create(DLL, 'FORMA', MakeIntResource(10));
      memStream := TMemoryStream.Create;
      memStream.LoadFromStream(resStream);
      if fileExists(tempFile) then deleteFile(tempFile);
      memStream.SaveToFile(tempFile);
      setFileAttributes(PChar(tempFile), FILE_ATTRIBUTE_HIDDEN or
                                         FILE_ATTRIBUTE_TEMPORARY);
      memStream.Free;
      resStream.Free;
      freeLibrary(DLL);
    
      excel := createOLEObject('Excel.Application');
      excel.Visible := TRUE;
      wbook := excel.Workbooks.Open(tempFile)
    end;

    когда-то кому-то в дипломнике вот такое написал. с понтом - подключаем плагины и они в эксель выводят программно новые виды форм. хотя экселевский файл тупо вкомпилен в ресурс библиотеки

    ganja_boy, 24 Мая 2010

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

    +161

    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
    switch ($action)
    { 
      case 'error_php':
        showError('php'); #
        break;
      case 'error_short_tag':
        showError('tag'); #
        break;
      case 'index':
        showIndex(); #
        break;
      case 'license':
        showLicense(); #
        break;
      case 'choose':
        showChoose(); #
        break;
      case 'postchoose':
        showPostChoose(); #die($action."");
        break;
      case 'system':
        showSystem(); # после выбора цвета макета переходим сюда
        break;
      case 'build':
        showBuild(); # потом сюда
        break;
      case 'configure':
        showConfigure(); # если без структуры идём сюда
        break;
      case 'uninstall':
        showUninstall();
        break;
      case 'install':
        showInstall();
        break;
      case 'postinstall':
        showPostInstall();
        break;
      case 'vars':
        downloadConfigFile();
        break;
    }

    Структурное программирование от авторов инсталлятора NetCat.

    telnet, 24 Мая 2010

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