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

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

    +114.3

    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
    static void JoinFiles(string FileOne, string FileTwo, string Out)
    		{
    			//declare head size
    			const long HeadSize = sizeof(long) * 4;
    			//get files size
    			long FFS = (new FileInfo(FileOne).Length),
    				  SFS = (new FileInfo(FileTwo).Length);
    			//Full paths of files
    			string FFFN = Path.GetFileName(Path.GetFullPath(FileOne)),
    					 SFFN = Path.GetFileName(Path.GetFullPath(FileTwo));
    			//calculate offsets
    			long FirstFileOffset = HeadSize + FFFN.Length,
    				  FirstFileNameOffset = HeadSize,
    				  SecondFileNameOffset = FirstFileOffset + FFS,
    				  SecondFileOffset = SecondFileNameOffset + SFFN.Length;
    			//declare head
    			byte[] Head = new byte[HeadSize];
    			/*	
    			 *		FFO	FFNO			SFO	SFNO
    			 */
    			//Format head
    			Head = JoinArrays<byte>(BitConverter.GetBytes(FirstFileOffset),
    										 BitConverter.GetBytes(FirstFileNameOffset),
    										 BitConverter.GetBytes(SecondFileOffset),
    										 BitConverter.GetBytes(SecondFileNameOffset));
    			//declare streams
    			System.IO.BinaryReader FBR = new BinaryReader(File.OpenRead(FileOne));
    			System.IO.BinaryWriter BW = new System.IO.BinaryWriter(File.Create(Out));
    			//Write head information
    			foreach (byte b in Head) BW.Write(b);
    			//Write first file name
    			byte[] buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(FFFN);
    			BW.Write(buffer, 0, buffer.Length);
    			//Write first file
    			for (long id = 0; id < FFS; id++) BW.Write(FBR.ReadByte());
    			//Write second file name
    			buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(SFFN);
    			BW.Write(buffer, 0, buffer.Length);
    			//Open second file
    			FBR.Close();
    			FBR = new BinaryReader(File.OpenRead(FileTwo));
    			//Write second file
    			for (long id = 0; id < SFS; id++) BW.Write(FBR.ReadByte());
    			//Save result
    			BW.Flush();
    			//Close streams
    			FBR.Close();
    			BW.Close();
    		}

    Функция склеивания двух файлов. Писал вчера вечером, когда утром посмотрел, я понял что писал я это очень поздно.

    psina-from-ua, 21 Февраля 2010

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

    +164.5

    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
    if($s_r1>0){
    while($s_ww_1=mysql_fetch_object($s_q_1)){
    $row_repl1["id"]=$s_ww_1->id;
    $row_repl1["name"]=$s_ww_1->name;
    $row_repl1["nick"]=$s_ww_1->nick;
    if($s_ww_1->nick==''){
    $row_tpl1 = new FileTemplate($row_repl1, "TEMPL/shabl119.tpl");
    }else{
    $row_tpl1 = new FileTemplate($row_repl1, "TEMPL/shabl120.tpl");
    }
    $row_repl0["T_level1"].=$row_tpl1->parse();
    $row_repl1=array();
    }// end while
    @mysql_free_result($s_q_1);
    }//if
    $row_tpl0 = new FileTemplate($row_repl0, "TEMPL/shabl152.tpl");
    $row_tpl0->display();
    $row_repl0=array();
    }// end while
    @mysql_free_result($s_q);
    }//if
    }elseif($lnk1==47){
    $s_q=mysql_query("SELECT id, name, descr FROM experts WHERE id=$lnk2 LIMIT 1");
    $s_r1 = mysql_error() ? 0 : mysql_num_rows($s_q);
    if($s_r1>0){
    while($s_ww=mysql_fetch_object($s_q)){
    $row_repl["id"]=$s_ww->id;
    $row_repl["name"]=$s_ww->name;
    $row_repl["descr"]=$s_ww->descr;
    $row_tpl = new FileTemplate($row_repl, "TEMPL/shabl18.tpl");
    $row_tpl->display();
    $row_repl=array();
    }// end while
    @mysql_free_result($s_q);
    }//if
    }elseif($lnk1==54){
    $s_q=mysql_query("SELECT id, name, subtitle, type, number, doclevel, body, date, descr, txt, shows, prompt FROM documents WHERE id=$lnk2 LIMIT 1");
    $s_r1 = mysql_error() ? 0 : mysql_num_rows($s_q);
    if($s_r1>0){
    while($s_ww=mysql_fetch_object($s_q)){
    $row_repl["id"]=$s_ww->id;
    $row_repl["name"]=$s_ww->name;
    $row_repl["subtitle"]=$s_ww->subtitle;
    $row_repl["ParentType"]=$s_ww->type;
    $ParentType=$row_repl["ParentType"];
    $s_q2=mysql_query("select name as type_doctypes_name from doctypes where id=".$s_ww->type."");
    $s_n2 = mysql_error() ? 0 : mysql_num_rows($s_q2);
    if($s_n2>0){
    $s_w2=mysql_fetch_object($s_q2);
    $row_repl["type_doctypes_name"]=stripslashes($s_w2->type_doctypes_name);
    @mysql_free_result($s_q2);
    }//s_n2
    $row_repl["number"]=$s_ww->number;
    $row_repl["doclevel"]=$s_ww->doclevel;
    $s_q2=mysql_query("select name as doclevel_doclevels_name from doclevels where id=".$s_ww->doclevel."");
    $s_n2 = mysql_error() ? 0 : mysql_num_rows($s_q2);
    if($s_n2>0){
    $s_w2=mysql_fetch_object($s_q2);
    $row_repl["doclevel_doclevels_name"]=stripslashes($s_w2->doclevel_doclevels_name);
    @mysql_free_result($s_q2);
    }//s_n2
    $row_repl["body"]=$s_ww->body;
    $row_repl["date"]=mysqldate_to_str($s_ww->date);
    $row_repl["descr"]=$s_ww->descr;
    $row_repl["txt"]=$s_ww->txt;
    $row_repl["shows"]=intval($s_ww->shows)+1;
    @UpdateFCounter("documents","shows","copyshows","id",$s_ww->id);

    Использовано в коде одного из проектов, оставшихся на поддержку. Такой красоты там только в одном файле - около 8000 строк.

    karevn, 10 Февраля 2010

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

    +170.7

    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
    if ((($company == "1none")&&($office == "loreal"))||($company == "146/710")){
       $from = "[email protected]";
       if ($kto == "c"){
        $to = $req1['email'].",[email protected]";
       }
       else{
        $to = $req1['MAILR'].",[email protected]";
       }
      }
    
      else{
       $from = "[email protected]";
       if ($kto == "c"){
        $to = $req1['email'].",[email protected]";
       }
       else{
        $to = $req1['MAILR'].",[email protected]";
       }
      }

    сейчас вот это говно приходится переводить на нормальный язык

    CountZero, 08 Февраля 2010

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

    +148.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(!$result = MYSQL_QUERY("SELECT gmr_id, gam_chip, gam_price, gam_status FROM ".PREFIX."_games;")) { die(mysql_error()); exit; }
    if(MYSQL_NUMROWS($result))
    {
        //какой-то код
    }

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

    azzz, 08 Февраля 2010

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

    +101.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    sec:=sec+1;
    if sec>59 then begin sec:=0; min:=min+1; end;
    if min>59 then begin min:=0; ch:=ch+1; end;
    statusbar1.Panels.Items[1].Text:=IntToStr(ch)+':'+IntToStr(min)+':'+IntToStr(sec);
    end;

    таймер

    xXx_totalwar, 06 Февраля 2010

    Комментарии (13)
  7. Си / Говнокод #2530

    +138.1

    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
    sprintf(cmd, "%supd_downloader -p upd_downloader\\bin %s %s -a %s", 
    #if defined(__unix__)
    	"./",
    #else
    	"",
    #endif
    	arg1, 
    	option->arg2 ? arg2 : "", 
    #if defined(__i386__) || defined(_M_X86)
    	"i686"
    #else
    	"x86_64"
    #endif
    );
    res = run_command(cmd);

    Обнаружил в коде. Типа портируемый код =) Да еще и sprintf() ...

    del, 02 Февраля 2010

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

    +149.8

    1. 1
    return urlencode(urlencode($text));

    xxx: cлушай, отправляю урл-кодированное, на телефон приходит перекодированное в KOI-8
    yyy: zzz: нужно отправляемое всё закодировать сверху снова urlencode($text)
    xxx: жеесть, 2 раза :-D, получилось!

    hardcoder, 01 Февраля 2010

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

    +55.5

    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
    //------------------------------- COMPARE -------------------------------------
    // Function to compare two strings on a mask, using a question mark and
    // asterisk.Question mark matches any single character. The asterisk matches
    // any signs of a minimum length of zero. maximum length is not limited. Only
    // the next character in the mask has a value when there is a coincidence.
    int compare(const char pat[],const char text[],int rec_ex)
    {
        bool    flag = false;               // flag show if working on "star"
        int     pat_len ,txt_len,           // lehtghs of pattern and text
                flagc,                      // counter and  position i check
                shift=0;                    // shift position
    
        pat_len = (int)strlen(pat);         // get lehtgh of pattern
        txt_len = (int)strlen(text);        // get lehtgh of text
    
        if(rec_ex == 1 || (!pat_len && !txt_len))   // check if have to check some
            return(1);                      // if yes return 1 or if have exit
        else if(rec_ex == pat_len)          // else return 0 becose not check that
            return (0);                     // return 0
    
        for(flagc=0;flagc < pat_len;flagc++)
            if(pat[flagc] == '*' && flagc + 1 == pat_len)
                return(compare(pat,text,1));// end of check return 1
            else if(pat[flagc] == '*')
                flag = true;                // start * compare set flag true
            else if(pat[flagc] != '?')
            {
                if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && !flag)
                    return(compare(pat,text,pat_len));   // bad char and no star
                else if(toupper(pat[flagc]) == toupper(text[flagc+shift]) && flag)
                    flag = false;                   // set flag false position
                else if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && flag)
                    shift++;
            }
            else if(pat[flagc] == '?')
            {                               // check if have ? in star operation
                if(toupper(pat[flagc]) == toupper(text[flagc+shift]) && flag)
                    flag = false;           // set flag false position
                else if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && flag)
                    shift++;                // add one more into shift
            }
        if((flagc+shift < txt_len && !flag) // text have nore chars and
            || (flagc+shift == txt_len +1 && pat[pat_len+1] != '*'))
            return(compare(pat,text,pat_len)); // and next char in pattern no star
        else
            return(compare(pat,text,1));       // end of pattern and text
    
    }

    Вот на после завтра нужно по программированию функцию написать- рекурсивную для сравнения строк по маске.
    Написал :-) якобы рекурсивную функцию :-)

    werd, 01 Февраля 2010

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

    +163.6

    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
    <?php
    function g_webi_razbitye_stranicy($st,$nachalo_ssilki, $kol_vidimyx_stranic, $kol_dannix, $kol_dannix_na_stran,$name_st_var="st",$rewrite=0,$end_stat="")
    {
    	$return=""; // переменная для сбора вывода
    	if($kol_dannix > $kol_dannix_na_stran){
    		$ostatok=$kol_dannix%$kol_dannix_na_stran;
    		$kolichestvo_stranic=($kol_dannix-$ostatok)/$kol_dannix_na_stran;
    		if ($ostatok>0): # Если остаток был больше нуля, значит остается еще несколько объяв, для которых нужна еще одна страница
    			$kolichestvo_stranic++;
    		endif;
    	}
    	if ($kolichestvo_stranic>$kol_vidimyx_stranic){ # если больше количества видимых страниц, начинаем прятать другие страницы в >>>
    		$kol_stranic_s_leva=ceil($kol_vidimyx_stranic/2);
    		if ($st>$kol_stranic_s_leva) { # (отсекание левой части)Если открыта страница выше пятой, то i примет другое значение, а если меньше пятой, то i будет 0
    			$i=$st-$kol_stranic_s_leva;
    			$menshe=$i;  }
    		else $i=0;
    		if($menshe<1):$menshe=1;endif;
    		if($i>0){ # Если вывод с первой страницы 1 2 3 4... то <<< выводить не надо
    			if($rewrite) $return.=$nachalo_ssilki."".$menshe.$end_stat."\"><<<</a>  ";
    			else $return.=$nachalo_ssilki."&".$name_st_var."=".$menshe."\"><<<</a>  ";
    		}
    		while($i<$kolichestvo_stranic){
    			$iii=$i+1;
    			if($st==$iii) $return.=" <b>$iii</b>  ";
    			else {
    				if($rewrite) $return.=$nachalo_ssilki."".$iii.$end_stat."\">$iii</a>  ";
    				else $return.=$nachalo_ssilki."&".$name_st_var."=".$iii."\">$iii</a>  ";
    			}
    			$i++;
    		}
    		return $return;
    	}
    }
    ?>

    функция вывода постраничного разбиения
    #webi.ru

    xXx_totalwar, 31 Января 2010

    Комментарии (13)
  11. Perl / Говнокод #2476

    −257.7

    1. 1
    sub count {scalar(@{[@_]})}

    Из себя выдавил)

    RolCom, 23 Января 2010

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