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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Товарищи, недавно у меня была возможность покодить на арестованных сях: синтаксис в принципе 
    не очень сложный, да и возможности широкие. 
    Так вот, у меня возник вопрос: стоит ли учить си-за-решеткой в противовес Delphi 8 (идет под .NET)?
    Дело в том.  что Си для меня язык новый, а с Delphi я более менее знаком. 
    
    Хочу заранее попросить: пожалуйста, никаких споров о преимуществах языков. 
    Вопрос стоит не о том, что лучше,  а о том, сравним ли по возможностям компилятор Delphi 8 .NET с C#.

    Stertor, 01 Сентября 2013

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

    +134

    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
    public void ConvertCross_2(int ch, string pfile,string NameSheet){
                //Преобразуем КроссТаблицу
                int Div = Convert.ToInt16(comboBox3.Text) - 1;
                string fn = ""; string fn1 = ""; string fn12 = ""; string fn13 = "";
                string fn14 = ""; string fn15 = ""; string fn16 = ""; string fn2 = "";
                string fn3 = "";
                string st = "";
                StreamWriter sw;
                string dirfile = "";
                if (textBox1.Text != ""){
                    dirfile = textBox1.Text + "\\" + pfile + ".csv";
                    if (ch == 1){
                        File.Delete(dirfile);
                    }
                    sw = new StreamWriter(dirfile, true, System.Text.Encoding.UTF8);
                }else{
                    if (ch == 1){
                        File.Delete(openFileDialog1.FileName + ".csv");
                    }
                    sw = new StreamWriter(openFileDialog1.FileName + ".csv", true, System.Text.Encoding.UTF8);
                }
                try{
                    for (int cl = 0; cl < 3 + Div; cl++){
                        fn = "F" + cl;
                        if (cl == 0){
                            st =  fn;
                        }else{
                            st += ";" +  fn ;
                        }
                    }
                    st += ";" +  "Sheets";
                    if (ch == 1){
                        sw.WriteLine(st);
                    }
                    for (int i = 1 + Div; i < dt.Columns.Count; i++){
                       Application.DoEvents();
                        for (int j = 1; j < dt.Rows.Count; j++){
                            fn1 = dt.Rows[j][0].ToString();
                            if (fn1 == "") fn1 = " ";
                            else fn1 = fn1.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            if (Div >= 1){
                                fn12 = dt.Rows[j][1].ToString();
                                if (fn1 == "") fn12 = " ";
                                else fn12 = fn12.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            }
                            if (Div >= 2){
                                fn13 = dt.Rows[j][2].ToString();
                                if (fn13 == "") fn13 = " ";
                                else fn13 = fn13.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            }
                            if (Div >= 3){
                                fn14 = dt.Rows[j][3].ToString();
                                if (fn14 == "") fn14 = " ";
                                else fn14 = fn14.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            }
                            if (Div >= 4){
                                fn15 = dt.Rows[j][4].ToString();
                                if (fn15 == "") fn15 = " ";
                                else fn15 = fn15.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            }
                            if (Div == 5){
                                fn16 = dt.Rows[j][5].ToString();
                                if (fn16 == "") fn16 = " ";
                                else fn16 = fn16.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            }
                            fn2 = dt.Rows[0][i].ToString();
                            if (fn2 == "") fn2 = " ";
                            else fn2 = fn2.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            fn3 = dt.Rows[j][i].ToString();
                            if (fn2 == "") fn2 = " ";
                            else fn2 = fn2.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            st =  fn1  + ";";
                            if (Div >= 1){
                                st = st +  fn12  + ";";
                            }
                            if (Div >= 2){
                                st = st +  fn13  + ";";
                            }
                            if (Div >= 3){
                                st = st +  fn14 + ";";
                            }
                            if (Div >= 4){
                                st = st + fn15 + ";";
                            }
                            if (Div >= 5){
                                st = st + fn16 + ";";
                            }
                            st = st +  fn2 +  ";" + fn3 + ";\"" + NameSheet.Replace("\n", "").Replace("\r", "").Replace(";", "SemicoloN");
                            if (fn3.Trim()!=""){
                               sw.WriteLine(st);
                            }
                        }
                    }
                    sw.Close();            
                }finally{
                    sw.Close();
            }
    }

    кто бы мог подумать, что так можно сделать unpivot

    Lokich, 30 Августа 2013

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void MultiSelectBox1_CheckedChanged(object sender, EventArgs e) {
               if (MultiSelectBox1.Checked == true) {
                    openFileDialog1.Multiselect = true;
                } else {
                    openFileDialog1.Multiselect = false;
                }
            }

    Lokich, 30 Августа 2013

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

    +134

    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 DataTable ConvertToString(Array values, int col_length, int row_length, int counter) {
                DataTable dt = new DataTable();
                string[] theArray = new string[col_length];
                if (row_length < counter)
                    counter = row_length;
                for (int j = 1; j <= counter; j++) {
                    for (int i = 1; i <= col_length; i++) {
                        if (j == 1) {
                            try {
                                dt.Columns.Add(values.GetValue(j, i).ToString().Replace('.', '_'));
                            } catch (NullReferenceException nre) {
                                dt.Columns.Add("F" + i);
                            }
                        } else if (values.GetValue(j, i) == null)
                            theArray[i - 1] = "";
                        else
                            theArray[i - 1] = (string)values.GetValue(j, i).ToString();
                    }
                    if (j != 1)
                        dt.LoadDataRow(theArray, true);
    
                }
                return dt;
            }

    шедеврально, чтобы понять, есть ли значение в первой строке нужно словить NullReferenceException, а дальше можно проверить на != null
    и так же (string)values.GetValue(j, i).ToString();

    Lokich, 30 Августа 2013

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

    +128

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (null != this.messageTemplateResourceName && null != this.messageTemplateResourceType)
    {
        return ResourceStringLoader.LoadString(this.messageTemplateResourceType.FullName,
            this.messageTemplateResourceName,
            this.messageTemplateResourceType.Assembly);
    }
    if (null != this.messageTemplateResourceName || null != this.messageTemplateResourceType)
    {
        throw new InvalidOperationException(Resources.ExceptionPartiallyDefinedResourceForMessageTemplate);
    }

    Microsoft EnterpriseLibrary
    else? нет, не слышал

    NeoN, 29 Августа 2013

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

    +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
    /// <summary>
    		/// Стартовый метод потока, который отображает процесс вычисления.
    		/// </summary>
    		public static void LoadingThread()
    		{
    			int curLoadingStep = 0;
    
    			while(!bStop)
    			{
    				Console.Clear();
    
    				switch(curLoadingStep)
    				{
    					case 0:
    						Console.WriteLine("Производится вычисление");
    						curLoadingStep = 1;
    					break;
    
    					case 1:
    						Console.WriteLine("Производится вычисление.");
    						curLoadingStep = 2;
    					break;
    
    					case 2:
    						Console.WriteLine("Производится вычисление..");
    						curLoadingStep = 3;
    					break;
    
    					case 3:
    						Console.WriteLine("Производится вычисление...");
    						curLoadingStep = 0;
    					break;
    				}
    
    				Thread.Sleep(800);
    			}
    		}

    Наткнулся на форуме.
    Чего то в этой жизни я явно не понимаю

    kegdan, 22 Августа 2013

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

    +137

    1. 1
    2. 2
    3. 3
    IServerRequest request = new ServerRequest(GetServerURL(serverType));
    
    if (request != null)

    На всякий случай.

    Belorus, 21 Августа 2013

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

    +135

    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
    using System;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication32
    {
        class Program
        {
            static readonly Random Random = new Random(DateTime.Now.Millisecond);
            private static int _counterTrue = 0;
            private static int _counterFalse = 0;
            private const int _MaxRand = int.MaxValue;
            private const int testLimit = 10000000;
    
            static void Main(string[] args)
            {
                Parallel.For(0, testLimit, (i) => Test());
                Console.WriteLine(_counterTrue);
                Console.WriteLine(_counterFalse);
                Console.WriteLine(_counterFalse/(float)(testLimit));
                Console.ReadKey();
    
            }
            static private void Test()
            {
                var first = Random.Next(_MaxRand);
                var second = Random.Next(_MaxRand);
                if (first == second)
                {
                    second = Random.Next(_MaxRand);
                }
                if (first == second)
                {
                    Interlocked.Increment(ref  _counterTrue);
                }
                else
                {
                    Interlocked.Increment(ref  _counterFalse);
                }
            }
        }
    }

    http://govnokod.ru/13631

    Собственно программа проверки

    vistefan 11 минут назад # 0
    С таким кодом вам тред новый надо было создавать.

    Создал, поливаем меня самодельным шоколадом

    kegdan, 21 Августа 2013

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

    +140

    1. 1
    while(index --> 1)

    iNsectus, 17 Августа 2013

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

    +140

    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
    public static Thread RunInNewThread(Action<string[]> method, string[] args, ThreadPriority priority)
    {
                Thread thread = new Thread(() => method(args));
                thread.Name = method.Method.Name;
                thread.SetApartmentState(ApartmentState.STA);
                thread.Priority = priority;
                thread.Start();
                return thread;
    }
    
    public static Thread RunInNewThread(Action<bool> method, bool args, ThreadPriority priority)
    {
                Thread thread = new Thread(() => method(args));
                thread.Name = method.Method.Name;
                thread.SetApartmentState(ApartmentState.STA);
                thread.Priority = priority;
                thread.Start();
                return thread;
    }
    
    public static Thread RunInNewThread(Action<DateTime> method, DateTime date, ThreadPriority priority)
    {
                Thread thread = new Thread(() => method(date));
                thread.Name = method.Method.Name;
                thread.SetApartmentState(ApartmentState.STA);
                thread.Priority = priority;
                thread.Start();
                return thread;
    }

    Шикарно

    taburetka, 16 Августа 2013

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