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

    +129

    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
    public Int32 SectionType
            {
                get
                {
                    if (this.StaticRecord) return -1;
                    if ((!this.SectionIsReference) && this.SectionDoNotMakeUp) return 4;
                    if (this.SectionIsSlave)
                    {
                        switch (this.SectionUnionMode)
                        {
                            case 1:
                                return 2;
                            case 2:
                                return 0;
                            default:
                                return 1;
                        }
                    }
                    if (this.SectionIsReference) return 5;
                    if (this.SectionIsUnion) return 3;
                    return 0;
                }
            }

    Собственноручно нагадил...

    Behemoth, 06 Ноября 2009

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

    +136.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
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    void parseDate(String str, ref int day, ref int month, ref int year)
            {
                String[] strings = str.Split('/');
                day = Int32.Parse(strings[0]);
                month = Int32.Parse(strings[1]);
                year = Int32.Parse(strings[2]);
            }
    
    bool validateDate(String s)
            {
                //let the data be null
                if (s == null || s == "")
                    return true;
                try
                {
                    String[] strings = s.Split('/');
                    if (strings.Length != 3)
                        return false;
    
                    String day = strings[0];
                    if (Int32.Parse(day) > 31)
                    {
                        return false;
                    }
                    String month = strings[1];
                    if (Int32.Parse(month) > 12)
                    {
                        return false;
                    }
                    String year = strings[2];
                    if (year.Length != 4)
                    {
                        return false;
                    }
                }
                catch (SystemException)
                {
                    return false;
                }
                return true;
            }
    
    int compareDates(String s1, String s2)
            {
                if (s1 == "" && s2 != "")
                    return -1;
                if (s1 == s2)
                    return 0;
                if (s1 != "" && s2 == "")
                    return 1;
    
                int day1 = 0, month1 = 0, year1 = 0, day2 = 0, month2 = 0, year2 = 0;
                parseDate(s1, ref day1, ref month1, ref year1);
                parseDate(s2, ref day2, ref month2, ref year2);
                if (year1 > year2)
                    return -1;
                if (year1 < year2)
                    return 1;
    
                if (month1 > month2)
                    return -1;
                if (month2 < month1)
                    return 1;
    
                if (day1 > day2)
                    return -1;
                if (day2 > day1)
                    return 1;
    
                return 0;
            }

    no comments

    alex, 06 Ноября 2009

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

    +947.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach (string id in sourceIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    sourceId = Convert.ToInt32(id);
                    break;
                }

    Как взять первую цифру в строке - конечно без цикла тут никак

    eval_2009, 03 Ноября 2009

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

    +98

    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
    static void CompressFile(string inFilename, 
                                 string outFilename)
        {
    
          FileStream sourceFile = File.OpenRead(inFilename);
          FileStream destFile = File.Create(outFilename);
    
          // Create the Compressed stream
          GZipStream compStream =
            new GZipStream(destFile, CompressionMode.Compress);
    
          // Write the data
          int theByte = sourceFile.ReadByte();
          while (theByte != -1)
          {
            compStream.WriteByte((byte)theByte);
            theByte = sourceFile.ReadByte();
          }
    
          // Clean it up
          sourceFile.Close();
          compStream.Close();
          destFile.Close();
        }

    Пример из книги "Microsoft .NET Framework 2.0 Application Development Foundation", официального пособия для подготовки к экзамену 70-536.
    Угадайте, почему "сжатые" файлы получаются больше несжатых.

    gecko, 02 Ноября 2009

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

    +135.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
    StiReport report = // создание отчета  StimulSoft Reporter          
     // . . . . .
     
    // . . . . . 
                string tempfilename = System.Guid.NewGuid().ToString() + ".tmp";
                report.ExportDocument(StiExportFormat.Word2007, tempfilename);    //позволяет конвертировать отчет только в поток 
    
                FileStream stream = new FileStream(tempfilename, FileMode.Open);
                byte[] reportFile = new byte[stream.Length];
                stream.Read(reportFile, 0, (int)stream.Length);
                stream.Close();
                File.Delete(tempfilename);
    
                if (reportFile.Length > 0)
                    if (MessageBox.Show("Зберегти друковану форму?", "Запит", MessageBoxButtons.OKCancel) == DialogResult.OK)
                         WriteToDB(reportFile, "Документ.docx");

    sven47, 31 Октября 2009

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

    +105.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
    public class ImportService : System.Web.Services.WebService
       {
           private const string KEY = "*******";
           [WebMethod]
           public void AddFileInQueue(string aKey, ..., out String error)
           {
                     ...
                   if (KEY == aKey)
                     ...
                   else
                   {
                       error = "Invalid key";
                   }
            }
        }

    Мне предложили использовать эту же авторизацию для нового веб-сервиса в том же проекте со словами "there is normal login implemented somewhere"

    Yagg, 28 Октября 2009

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

    +132.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
    public string removeSpecialCharacters(string orig) {
                string rv;
    
                rv = orig.Replace("\\", " ");
                rv = rv.Replace("(", " ");
                rv = rv.Replace(")", " ");
                rv = rv.Replace("/", " ");
                rv = rv.Replace("-", " ");
                rv = rv.Replace(",", " ");
                rv = rv.Replace(">", " ");
                rv = rv.Replace("<", " ");
                rv = rv.Replace("-", " ");
                rv = rv.Replace("&", " ");
    
                rv = rv.Replace("'", "");
    
                rv = rv.Replace("\u2019", ""); // smart forward (possessive) quote.
    
                rv = rv.Replace(" ", "");
    
                rv = rv.Trim(' '); // Remove leading and trailing spaces.
    
                return (rv);
            }

    fade, 27 Октября 2009

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

    +94

    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
    if (comboBox4.Text == "Да")
     {
             ph[0] = (p11p * ph[0]) / ((p11p * ph[0]) + (p11n * (Convert.ToDouble(1) - ph[0])));
             ph_[1] = ph[0];
    }
    if (comboBox4.Text == "Да напевно")
    {
           str = (p11p * ph[0]) / ((p11p * ph[0]) + (p11n * (Convert.ToDouble(1) - ph[0])));
           str = (str - ph[0]) / 2;
           ph[0] += str;
           ph_[1] = ph[0];
    }
    if (comboBox4.Text == "Нет")
    {
           ph[0] = (ph[0] * (Convert.ToDouble(1) - p11p)) / (Convert.ToDouble(1) - (ph[0] * p11p) - (p11n * (Convert.ToDouble(1) - ph[0])));
           ph_[1] = ph[0];
    }
    if (comboBox4.Text == "Нет напевно")
    {
           str = (ph[0] * (Convert.ToDouble(1) - p11p)) / (Convert.ToDouble(1) - (ph[0] * p11p) - (p11n * (Convert.ToDouble(1) - ph[0])));
           str = (str - ph[0]) / 2;
           ph[0] += str;
           ph_[1] = ph[0];
    }
    if (comboBox4.Text == "Не знаю")
    {
           ph_[1] = ph[0];
    }

    pmalyavkin, 26 Октября 2009

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

    +130.2

    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
    #region C++ signatures
            //long TRANS2QUIK_API __stdcall TRANS2QUIK_CONNECT (
            //    LPSTR lpstConnectionParamsString, 
            //    long* pnExtendedErrorCode, 
            //    LPSTR lpstrErrorMessage, 
            //    DWORD dwErrorMessageSize);
            #endregion
    
    
            #region connect
            [DllImport("TRANS2QUIK.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16",CallingConvention = CallingConvention.StdCall)]
            static extern long connect(string lpcstrConnectionParamsString,ref long pnExtendedErrorCode,
               byte[] lpstrErrorMessage,UInt32 dwErrorMessageSize);
            public static void connect_test(bool FinalPause)
            {
                string path = @"D:\Квики\Quik.ТХБ2007\";
                Byte[] EMsg = new Byte[50];
                UInt32 EMsgSz = 50;
                long ExtEC = 0, rez = -1;
                rez = connect(path, ref ExtEC, EMsg, EMsgSz);
                Console.WriteLine("test_q.connect_test>\t\t{0} {1} ",rez & 255, ResultToString(rez&255));
                //Console.WriteLine(" ExtEC={0}, EMsg={1}, EMsgSz={2}", (ExtEC & 255), EMsg, EMsgSz);
                if(FinalPause)Console.ReadLine();
            }
            #endregion

    Юзаем функцию написанную на C++ и возвращающую тип long. После неправильного маршалинга (в C++ long это 32 бита, а не 64) отсекаем лишние биты по AND.

    greeny, 24 Октября 2009

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

    +135.8

    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
    public static string ResultToString(long Result)
            {
                switch (Result)
                {
                    case TRANS2QUIK_SUCCESS:                                //0
                        return "TRANS2QUIK_SUCCESS";
                        break;
                    case TRANS2QUIK_FAILED:                                 //1
                        return "TRANS2QUIK_FAILED";
                        break;
                    case TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND:                //2
                        return "TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND";
                        break;
                    case TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED:              //3
                        return "TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED";
                        break;
                    case TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK:              //4
                        return "TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK";
                        break;
                    case TRANS2QUIK_WRONG_SYNTAX:                           //5
                        return "TRANS2QUIK_WRONG_SYNTAX";
                        break;
                    case TRANS2QUIK_QUIK_NOT_CONNECTED:                     //6
                        return "TRANS2QUIK_QUIK_NOT_CONNECTED";
                        break;
                    case TRANS2QUIK_DLL_NOT_CONNECTED:                      //7
                        return "TRANS2QUIK_DLL_NOT_CONNECTED";
                        break;
                    case TRANS2QUIK_QUIK_CONNECTED:                         //8
                        return "TRANS2QUIK_QUIK_CONNECTED";
                        break;
                    case TRANS2QUIK_QUIK_DISCONNECTED:                      //9
                        return "TRANS2QUIK_QUIK_DISCONNECTED";
                        break;
                    case TRANS2QUIK_DLL_CONNECTED:                          //10
                        return "TRANS2QUIK_DLL_CONNECTED";
                        break;
                    case TRANS2QUIK_DLL_DISCONNECTED:                       //11
                        return "TRANS2QUIK_DLL_DISCONNECTED";
                        break;
                    case TRANS2QUIK_MEMORY_ALLOCATION_ERROR:                //12
                        return "TRANS2QUIK_MEMORY_ALLOCATION_ERROR";
                        break;
                    case TRANS2QUIK_WRONG_CONNECTION_HANDLE:                //13
                        return "TRANS2QUIK_WRONG_CONNECTION_HANDLE";
                        break;
                    case TRANS2QUIK_WRONG_INPUT_PARAMS:                     //14
                        return "TRANS2QUIK_WRONG_INPUT_PARAMS";
                        break;
                    default:
                        return "UNKNOWN_VALUE";
                        break;
                }
            }
            public static string ByteToString(byte[] Str)
            { 
                string s="";
                for (int i = 0; i < Str.Length; i++)
                {
                    s = s + Str[i].ToString();
                }
                return s;
            }

    Лежит в качестве примера на одном из сайтов.
    Ну автору всё равно спасибо, пример и правда полезный (да и код прикольный :)).

    greeny, 23 Октября 2009

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