1. C# / Говнокод #1695

    +127.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
    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
    ...
    
    // Импорт функций для работы с MailSlot
    [DllImport("kernel32.dll")]
    static extern int CreateMailslot(
    	string name,
    	int maxMessageSize,
    	int readTimeout,
    	int securityAttributes);
    [DllImport("kernel32.dll")]
    static extern int GetMailslotInfo(
    	int hFile,			// mailslot handle
    	int maxMsgSize,		// maximum message size
    	int* lpcbMessage,	// size of next message
    	int* lpcMessage,	// number of messages
    	int timeout);		// read time-out
    [DllImport("kernel32.dll")]
    static extern int ReadFile(
    	int hFile,
    	void* lpBuffer,
    	int nNumberOfBytesToRead,
    	int* lpNumberOfBytesRead,
    	int overlapped);
    
    ...
    
    // Чтение входящего пакета
    private void readMessage(int cbMessage)
    {
    	int bytesReaden, fResult;
    	byte[] buf = new byte [102400];
    
    	fixed (byte* data = buf)
    	{
    		fResult = ReadFile(
    			handleServer,
    			data,
    			cbMessage,
    			&bytesReaden,
    			0);
    	}
    
    	if (fResult == 0)
    	{
    		textBox_chat.AppendText("--< Невозможно прочесть данные >--\n");
    		return;
    	}
    
    	string str = "";
    	MsgType type = (MsgType)'e';
    	if (buf.Length > 0)
    	{
    		type = (MsgType)buf[0];
    		for (int i = 0; i < bytesReaden; i++)
    			str += BitConverter.ToChar(buf,i*2);
    		//str = buf.ToString();
    		str = str.Remove(0, 1);
    	}
    
    	switch (type)
    	{
    		...
    	}		
    }
    
    ...

    Учебная задача: чат на MailSlot.
    Битва с шарпом за указатели, за массивы и т.д.

    k06a, 26 Августа 2009

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

    +134.9

    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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    public Language(string lang)
    {
    if (lang != null)
    {
    if (lang.IndexOf("Afrikaans") > -1) lang = "1078";
    if (lang.IndexOf("Albanian") > -1) lang = "1052";
    if (lang.IndexOf("Arabic") > -1)
    {
    lang = "1025";
    if (lang.IndexOf("Algeria") > -1) lang = "5121";
    if (lang.IndexOf("Bahrain") > -1) lang = "15361";
    if (lang.IndexOf("Egypt") > -1) lang = "3073";
    if (lang.IndexOf("Egypt") > -1) lang = "2049";
    if (lang.IndexOf("Iraq") > -1) lang = "2049";
    if (lang.IndexOf("Jordan") > -1) lang = "11265";
    if (lang.IndexOf("Kuwait") > -1) lang = "13313";
    if (lang.IndexOf("Lebanon") > -1) lang = "12289";
    if (lang.IndexOf("Libya") > -1) lang = "4097";
    if (lang.IndexOf("Morocco") > -1) lang = "6145";
    if (lang.IndexOf("Oman") > -1) lang = "8193";
    if (lang.IndexOf("Qatar") > -1) lang = "16385";
    if (lang.IndexOf("Saudi Arabia") > -1) lang = "1025";
    if (lang.IndexOf("Syria") > -1) lang = "10241";
    if (lang.IndexOf("Tunisia") > -1) lang = "7169";
    if (lang.IndexOf("U.A.E.") > -1) lang = "14337";
    if (lang.IndexOf("Yemen") > -1) lang = "9217";
    }
    if (lang.IndexOf("Armenian") > -1) lang = "1067";
    if (lang.IndexOf("Assamese") > -1) lang = "1101";
    if (lang.IndexOf("Azeri") > -1)
    {
    lang = "2092";
    if (lang.IndexOf("Cyrillic") > -1) lang = "2092";
    if (lang.IndexOf("Latin") > -1) lang = "1068";
    }
    if (lang.IndexOf("Basque") > -1) lang = "1069";
    if (lang.IndexOf("Belarusian") > -1) lang = "1059";
    if (lang.IndexOf("Bengali") > -1) lang = "1093";
    if (lang.IndexOf("Bulgarian") > -1) lang = "1026";
    if (lang.IndexOf("Catalan") > -1) lang = "1027";
    if (lang.IndexOf("Chinese") > -1)
    {
    lang = "2052";
    if (lang.IndexOf("Hong Kong") > -1) lang = "3076";
    if (lang.IndexOf("Macao") > -1) lang = "5124";
    if (lang.IndexOf("PRC") > -1) lang = "2052";
    if (lang.IndexOf("Singapore") > -1) lang = "4100";
    if (lang.IndexOf("Taiwan") > -1) lang = "1028";
    }
    if (lang.IndexOf("Lithuanian") > -1) lang = "2087";
    if (lang.IndexOf("Croatian") > -1) lang = "1050";
    if (lang.IndexOf("Czech") > -1) lang = "1029";
    if (lang.IndexOf("Danish") > -1) lang = "1030";
    if (lang.IndexOf("Divehi") > -1) lang = "1125";
    if (lang.IndexOf("Dutch") > -1)
    {
    lang = "1043";
    if (lang.IndexOf("Belgium") > -1) lang = "2067";
    if (lang.IndexOf("Netherlands") > -1) lang = "1043";
    }
    if (lang.IndexOf("English") > -1)
    {
    lang = "2057";
    if (lang.IndexOf("Australia") > -1) lang = "3081";
    if (lang.IndexOf("Belize") > -1) lang = "10249";
    if (lang.IndexOf("Canada") > -1) lang = "4105";
    if (lang.IndexOf("Caribbean") > -1) lang = "9225";
    if (lang.IndexOf("Ireland") > -1) lang = "6153";
    if (lang.IndexOf("Jamaica") > -1) lang = "8201";
    if (lang.IndexOf("New Zealand") > -1) lang = "5129";
    if (lang.IndexOf("Philippines") > -1) lang = "13321";
    if (lang.IndexOf("South Africa") > -1) lang = "7177";
    if (lang.IndexOf("Trinidad") > -1) lang = "11273";
    if (lang.IndexOf("United Kingdom") > -1) lang = "2057";
    if (lang.IndexOf("United States") > -1) lang = "1033";
    if (lang.IndexOf("Zimbabwe") > -1) lang = "12297";
    }
    if (lang.IndexOf("Estonian") > -1) lang = "1061";
    if (lang.IndexOf("Faeroese") > -1) lang = "1080";
    if (lang.IndexOf("Farsi") > -1) lang = "1065";
    if (lang.IndexOf("Finnish") > -1) lang = "1035";
    if (lang.IndexOf("French") > -1)
    {
    lang = "1036";
    if (lang.IndexOf("Belgium") > -1) lang = "2060";
    if (lang.IndexOf("Canada") > -1) lang = "3084";
    if (lang.IndexOf("France") > -1) lang = "1036";
    if (lang.IndexOf("Luxembourg") > -1) lang = "5132";
    if (lang.IndexOf("Monaco") > -1) lang = "6156";
    if (lang.IndexOf("Switzerland") > -1) lang = "4108";
    }
    if (lang.IndexOf("Macedonian") > -1) lang = "1071";
    if (lang.IndexOf("Galician") > -1) lang = "1110";
    if (lang.IndexOf("Georgian") > -1) lang = "1079";
    if (lang.IndexOf("German") > -1)
    {
    lang = "1031";
    if (lang.IndexOf("Austria") > -1) lang = "3079";
    if (lang.IndexOf("Germany") > -1) lang = "1031";

    Таблица системных языков. http://forum.sources.ru/index.php?showtopic=270133&view=findpost &p=2243892

    TerraGhost, 26 Августа 2009

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

    −55.2

    1. 1
    return ('3');

    Возвращаем код ошибки.

    propanoid, 26 Августа 2009

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

    +161.9

    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
    function checkAllRemarks()
    { // ЧТО ЭТО!?!?!?!?17СЕМНАДЦАТЬ!!!!1111
       for (i = 0; i < document.getElementsByTagName("input").length; i++)
       {
            if (document.getElementsByTagName("input")[i].name.split("|").length>=2)
            {
                if (document.getElementsByTagName("input")[i].name.split("|")[0]=="CBR")
                {
                    if (document.getElementsByTagName("input")[i].name.split("|")[1].length==36)
                    {
                        if (document.getElementsByName("allRemarks")[0].checked == true)
                            document.getElementsByTagName("input")[i].checked = true;
                        else
                            document.getElementsByTagName("input")[i].checked = false;            
                    }
                }
            }
        } 
    }

    Много кривого кода я видел на работе, но глядя на эту функцию я не мог не поразиться.

    iley, 26 Августа 2009

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

    +133.9

    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
    switch (aDataType.FullName)
    			{
    				case "System.SByte":	
    				case "System.Int16":	
    				case "System.Int32":	
    				case "System.Int64":	
    				case "System.Single":	
    				case "System.Double":	
    				case "System.Decimal":	
    				case "System.DateTime":	
    					_IsNumeric = true;
    					break;
    				case "System.String":   
    					_IsNumeric = false;
    					break;	
    				default:
    					throw new ArgumentException("Not supported field data type: " + 
    						aDataType.FullName, "aDataType");
    			}

    Не надо хардкодить названия типов

    sanya_fs, 26 Августа 2009

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

    +142

    1. 1
    2. 2
    echo $search;        
    $result = mysql_query ("SELECT id,title,description,date,author,view,mini_img FROM data WHERE MATCH(text) AGAINST('".$search."')");

    st0rk, 26 Августа 2009

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

    +48

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    while( !InputFileStream.atEnd() )
    {
    	QString Qstrtmp;
    	InputFileStream >> Qstrtmp;
    	ReadButton.bTag =  QString(QObject::tr( (Qstrtmp.toStdString()).c_str() ));
    	InputFileStream >> Qstrtmp;
    	ReadButton.iTag =  QString(QObject::tr( (Qstrtmp.toStdString()).c_str() ));
    	InputFileStream >> Qstrtmp;
    	ReadButton.Popup =  QString(QObject::tr( (Qstrtmp.toStdString()).c_str() ));
    	ReadButton.PartitionId = *iVar;
    	this->Buttons.push_back( ReadButton );
    }

    Код взят из совместного проекта 5-ти студентов.
    Это был начальный период нашего изучения Qt.

    k06a, 26 Августа 2009

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

    +70.9

    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
    import javax.microedition.lcdui.*;
    import java.lang.*;
    import java.io.*;
    
    public class LNRES
    {
    	public InputStream is=null;
    	public String lines[]=null;
    	
    	LNRES(String name,int size) 
    	{
    		int x=0;
    		is=getClass().getResourceAsStream(name);
    		byte mb[]=new byte[size];
    		try { x=is.read(mb); } catch (Exception ex) { }
    		char mc[]=new char[x];
    		for (int i=0; i<x; i++) mc[i]=(char)mb[i];
    		
    		int n=0,a=0,l=0;
    		String mas2[]=null;
    		for (int i=0; i<mc.length; i++) {
    			if ((mb[i]==13)||(i==mc.length-1)) {
    				mas2=new String[n+1];
    				for (int j=0; j<n; j++) mas2[j]=new String(lines[j]);
    				mas2[n]=new String(mc,a,l+((i==mc.length-1)?1:0)); n++; lines=new String[n];
    				for (int k=0; k<n; k++) lines[k]=new String(mas2[k]);
    				a=i+2; l=0; i++;
    			} else l++;
    		}
    		lines=new String[n];
    		for (int i=0; i<n; i++) lines[i]=new String(mas2[i]);		
    	}	
    }

    Писалось под j2me. Класс считывает весь файл и превращает его в массив строк.

    k06a, 26 Августа 2009

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

    −95.4

    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
    @ids.each_index do |di|
            if @ids[di] then
              @ids[di].each_index do |li|
                @employ[di][li] = Hash.new
                @employ[di][li][:subject] = Subject.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:subject_id]
                 }")[:title] if @ids[di][li]
                @employ[di][li][:class] = SchoolClass.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:school_class_id]
                 }")[:number].to_s +
                  SchoolClass.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:school_class_id]
                 }")[:letter] if @ids[di][li]
                @employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
                 }")[:name] + ' ' +
                  @employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
                 }")[:surname] + ' ' +
                  @employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
                  Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
                 }")[:patronymic] if @ids[di][li]
              end
            end
          end

    Небольшая утренняя ревизия кода раскрыла заговор по свержению власти и захвату мозга остальных кодеров проекта.

    Сидим, рефакторим.

    eveel, 26 Августа 2009

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

    +62.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    class UglyColumnsRedefine < ActiveRecord::Migration
      def self.up
        change_column :variable_sets, :active, :boolean
        VariableSet.all.each{|v| v.update_attribute :active, !!v.active}
      end
    
      def self.down
      end
    end

    Миграция с весёлым названием 20090601130619_ugly_columns_redefine.rb, для рельсового приложения, аля "так делать низя".

    NoName, 26 Августа 2009

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