1. Список говнокодов пользователя lomomike

    Всего: 2

  2. C# / Говнокод #6958

    +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
    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
    public void ReadFromFile()
    {
    	LoadIntervals = new TimeIntervals(Color.Black);
    	StreamReader tReader = null;
    	tReader = File.OpenText("DefaultIntervals");
    	string income = null;
    	while ((income = tReader.ReadLine()) != null)
    	{
    		// string income = tReader.ReadLine();
    		string colorR = null; string colorG = null; string colorB = null; string colorA = null; string interval = null;
    		int i = 0;
    		for (i = 4; i < income.Length; i++)
    		{
    			if (income[i] != ',')
    			{
    
    				interval += income[i];
    			}
    			else { break; }
    		}
    
    		for (int a = i + 10; a < income.Length; a++)
    		{
    			if (income[a] != ',')
    			{
    				colorA += income[a];
    			}
    			else
    			{
    
    				for (int r = a + 4; r < income.Length; r++)
    				{
    					if (income[r] != ',')
    					{
    						colorR += income[r];
    					}
    					else
    					{
    						for (int g = r + 4; g < income.Length; g++)
    							if (income[g] != ',')
    							{
    								colorG += income[g];
    							}
    							else
    							{
    								for (int b = g + 4; b < income.Length; b++)
    									if (income[b] != ',')
    									{
    										if (income[b] != ']')
    											colorB += income[b];
    									}
    									else
    									{
    										break;
    									}
    								break;
    							}
    						break;
    					}
    				}
    				break;
    			}
    		}
    		TimePoint tp = new TimePoint(Convert.ToDouble(interval), Color.FromArgb(Convert.ToInt32(colorA), Color.FromArgb(Convert.ToInt32(colorR), Convert.ToInt32(colorG), Convert.ToInt32(colorB))));
    		LoadIntervals.Add(tp);
    	}
    
    	tReader.Close();
    	Intervals = LoadIntervals;
    }

    Так мы парсим файл конфигов вида. (Формат придуман автором кода)
    Int=3,Color [A=223, R=253, G=4, B=38]
    Int=10,Color [A=255, R=86, G=86, B=185]
    Int=20,Color [A=200, R=255, G=215, B=0]
    Int=50,Color [A=200, R=255, G=165, B=0]

    lomomike, 15 Июня 2011

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

    +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
    internal sealed class FontKeeper
    {
            private static readonly FontConverter s_converter = new FontConverter();
            private static readonly Regex s_font = new Regex(@"^(?<name>\w[\s\w]+);\s*(?<size>\d+)pt\s*(?:;(?<style>.*))?$", RegexOptions.IgnoreCase);
            private static readonly Regex s_style = new Regex(@"^\s*style\s*=\s*([\w\s,]+)$", RegexOptions.IgnoreCase);
            private const int defaultSize = 14;
    
            public FontKeeper(Font font) : this(s_converter.ConvertToString(font)) { }
    
            public FontKeeper(string fontString)
            {
                Match m = s_font.Match(fontString);
                if (!m.Success)
                    throw new ArgumentException("Неверный формат строки");
    
                Name = m.Groups["name"].Value.Trim();
                int sz;
                if (!int.TryParse(m.Groups["size"].Value, out sz))
                    sz = defaultSize;
                Size = sz;
    
                //Флаги стиля
                ParseStyle(m.Groups["style"].Value);
            }
    
            private void ParseStyle(string value)
            {
                Match m = s_style.Match(value);
                if (!m.Success) return;
    
                string[] styles = m.Groups[1].Value.Split(new[] { ',' });
                foreach (var style in styles)
                {
                    try
                    {
                        Style |= (FontStyle)Enum.Parse(typeof(FontStyle), style.Trim(), true);
                    }
                    catch { }
                }
            }
    
            public string Name { get; set; }
            public int Size { get; set; }
            public FontStyle Style { get; set; }
            public float FontFactor
            {
                get { return (float)Size / defaultSize; }
                set { Size = (int)(value * defaultSize); }
            }
    
            public Font CreateFont()
            {
                return new Font(Name, Size, Style);
            }
    }

    Небольшой класс для хранения и динамического изменения шрифтов

    lomomike, 10 Июня 2011

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