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

    +122

    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
    public class ASyncFileHashAlgorithm
    	{
    		protected HashAlgorithm hashAlgorithm;
    		protected byte[] hash;
    		protected bool cancel = false;
    		protected int bufferSize = 4096;
    		public delegate void FileHashingProgressHandler (object sender, FileHashingProgressArgs e);
    		public event FileHashingProgressHandler FileHashingProgress;
    
    		public ASyncFileHashAlgorithm(HashAlgorithm hashAlgorithm)
    		{
    			this.hashAlgorithm = hashAlgorithm;
    		}
    
    		public byte[] ComputeHash(Stream stream)
    		{
    			cancel = false;
    			hash = null;
    			int _bufferSize = bufferSize; // this makes it impossible to change the buffer size while computing
    
    			byte[] readAheadBuffer, buffer;
    			int readAheadBytesRead, bytesRead;
    			long size, totalBytesRead = 0;
    
    			size = stream.Length;
             	readAheadBuffer = new byte[_bufferSize];
                readAheadBytesRead = stream.Read(readAheadBuffer, 0, readAheadBuffer.Length);
    
                totalBytesRead += readAheadBytesRead;    
    
                do
                {
                    bytesRead = readAheadBytesRead;
                    buffer = readAheadBuffer;    
    
                    readAheadBuffer = new byte[_bufferSize];
                    readAheadBytesRead = stream.Read(readAheadBuffer, 0, readAheadBuffer.Length);
    
                    totalBytesRead += readAheadBytesRead;    
    
                    if (readAheadBytesRead == 0)
                        hashAlgorithm.TransformFinalBlock(buffer, 0, bytesRead);
                    else
                        hashAlgorithm.TransformBlock(buffer, 0, bytesRead, buffer, 0);
    
    				FileHashingProgress(this, new FileHashingProgressArgs(totalBytesRead, size));
                } while (readAheadBytesRead != 0 && !cancel);
    
    			if(cancel)
    				return hash = null;
    
        		return hash = hashAlgorithm.Hash;
    		}
    
    		public int BufferSize
    		{
    			get
    			{ return bufferSize; }
    			set
    			{ bufferSize = value; }
    		}
    
    		public byte[] Hash
    		{
    			get
    			{ return hash; }
    		}
    
    		public void Cancel()
    		{
    			cancel = true;
    		}
    
    		public override string ToString ()
    		{
    			string hex = "";
    			foreach(byte b in Hash)
    				hex += b.ToString("x2");
    
    			return hex;
    		}
    	}

    Очень интересная реализация "асинхронного" хэширования.

    martin, 31 Августа 2011

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

    +128

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static void ListXmlSerialize<T>(List<T> UserList, string Obj, string FileName)
    {
          object obj = new object();
          lock (obj)
          {
               XmlSerializer UserXmlFormat = new XmlSerializer(typeof(List<T>), Obj);
               Stream UserFileStream = new FileStream(FileName, FileMode.Create, FileAccess.Write, FileShare.Write);
               UserXmlFormat.Serialize(UserFileStream, UserList);
               UserFileStream.Close();
         }
    }

    wpfDev, 31 Августа 2011

    Комментарии (8)
  3. C# / Говнокод #7712

    +965

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    string[] val = ...;
    if (val.Length > 0)
    {
        return val[1];
    }
    else
        return string.Empty;

    IndexOutOfRangeException

    Eugene, 31 Августа 2011

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

    +963

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private void SetStat(QALog stat, ArtIntLnkLog log)
        {
            stat.AllLinks += 1;
            if (log.Command == 5)
                stat.ErrLinks += 1;
            if (log.Command == 1)
                stat.SetLinks += 1;
            if (log.Command == 2)
                stat.ReSetLinks += 1;
        }

    Такое вот чудное обновление статистики, где константы, switch и инкрементация непонятно.

    f5f3e9, 31 Августа 2011

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    if (ID_Pers == (decimal)r["Код_ФизЛица"])
        query = new SqlCommand("UPDATE СписокФизическихЛиц SET ДатаРождения=CONVERT(DateTime,'" + Date + "',104) where  ID='" + r["Код_ФизЛица"].ToString() + "'", conn);
    else
        query = new SqlCommand("UPDATE СписокФизическихЛиц SET ДатаРождения=CONVERT(DateTime,'" + Date + "',104) where  ID='" + ID_Pers.ToString() + "'", conn);

    Классический говнокод.

    exile, 23 Августа 2011

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

    +116

    1. 1
    2. 2
    repositoryBugzilla.Open();
    repositoryBugzilla.Close();

    Вот такой код я нашел у себя в проекте.

    abbbbbbbbbb, 23 Августа 2011

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

    +137

    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
    xxx: Скажите пожалуйста нубоюзеру, как в сишарпе извлечь корень определённой степени?
    yyy: http://msdn.microsoft.com/ru-ru/library/system.math.sqrt.aspx (Math.Sqrt, Возвращает квадратный корень из указанного числа.)
    xxx: Спасибо, но желательно бы не только >квадратный< корень, но и заданной степени.
    yyy: Делай через циклы или рекурсивно.
    double SuperSquare(double number, int n)
    {
     double result = number;
     for(int i = 0; i < n; i++)
     {
     result = Math.Sqrt(result)
     }
     return result;
    }
    // Както так

    Инновационный способ вычислять корень заданной степени.

    flawy, 23 Августа 2011

    Комментарии (52)
  8. C# / Говнокод #7596

    +123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public override void KeyUp(KeyboardEventArgs e)
    {
        if(subact.KeyUp(e)) return;
    }
    
    public override void KeyDown(KeyboardEventArgs e)
    {
        if(subact.KeyDown(e)) return;
    }

    ___, 20 Августа 2011

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

    +115

    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
    //1
    directory = WebConfigurationManager.ConnectionStrings[Page.Server.MachineName.ToUpper() + Request.QueryString["number"]].ConnectionString;
    //2
    web.config:
    <connectionStrings>
      <add name="ServerName1" connectionString="D:\bla\incoming\" /> 
      <add name="ServerName2" connectionString="D:\bla\outcoming\" /> 
      ...
     </connectionStrings>
    //3
    function Upload(currFile) {
    if (grafWin == null || grafWin.closed) {
    	grafWin = open('UpLoad.aspx?number=' + currFile,'Attachment','width=300,height=150,scrollbars=no,left=800,top=400');
    	self.name = "winPARENT";
    }
    }
    //4
    <input type="button" name="filePlus1" value=" + " style="visible;" onclick="javascript: Upload('1')">

    1) Сохранение документов на стороне сервера выбор папки назначения
    2) web.config
    3) js-function для вызова страницы
    4) html контрол для вызова страницы которая сохранит документ в папку D:\bla\incoming

    TasmX, 17 Августа 2011

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

    +137

    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
    switch (SelItemZoom.Text)
                {
                    case "25%":
                        CRVDoc.Zoom(25);
                        break;
    
                    case "50%":
                        CRVDoc.Zoom(50);
                        break;
    
                    case "75%":
                        CRVDoc.Zoom(75);
                        break;
    
                    case "100%":
                        CRVDoc.Zoom(100);
                        break;
    
                    case "125%":
                        CRVDoc.Zoom(125);
                        break;
    
                    case "150%":
                        CRVDoc.Zoom(150);
                        break;
    
                    case "175%":
                        CRVDoc.Zoom(175);
                        break;
    
                    case "200%":
                        CRVDoc.Zoom(200);
                        break;
                }

    Человек перед этим наверно прочитал про switch.

    Ky7m, 17 Августа 2011

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