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

    +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
    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
    while (s != null)
                {
                    s = fs.ReadLine();
    
                    //arr  line example <rect x="0" y="0" rgba(92,41,235,0.9921568627451 
    
                    String[] arr = s.Split('(');
                    arr = arr[1].Split(',');
    
                    int fourPart = (int)(float.Parse(arr[3].Replace('.',',')) * 0xFF);
                    var binaryFour =  Convert.ToString(fourPart, 2);
    
                    while(binaryFour.Length < 8)
                    {
                        binaryFour = "0" + binaryFour;
                    }
    
                    int threePart = int.Parse(arr[2]);
                    var binaryThree = Convert.ToString(threePart, 2);
    
                    while (binaryThree.Length < 8)
                    {
                        binaryThree = "0" + binaryThree;
                    }
    
                    int twoPart = int.Parse(arr[1]);
                    var binaryTwo = Convert.ToString(twoPart, 2);
    
                    while (binaryTwo.Length < 8)
                    {
                        binaryTwo = "0" + binaryTwo;
                    }
    
                    int firstPart = int.Parse(arr[0]);
                    var binaryfirst = Convert.ToString(firstPart, 2);
    
                    number = Convert.ToInt32((binaryfirst + binaryTwo + binaryThree + binaryFour),2);
    
                    Write("number", number.ToString());
                }

    Хз как такое вообще появляется в голове

    Запостил: partizanes, 31 Мая 2016

    Комментарии (11) RSS

    • > Хз как такое вообще появляется в голове

      Кто-то слишком долго программировал на VisualBasic.
      Ответить
    • Родина им дала парсеры...
      Ответить
    • Интирестно как автор этого творения Tcp пакеты обрабатывает
      Ответить
      • Перегоняет в hex, сводя задачу к парсингу текста.
        Ответить
    • >><rect x="0" y="0" rgba(92,41,235,0.9921568627451

      А что это кстати за невалидное говно?
      Ответить
      • Через автозамену в блокноте упрощен
        Оригинал такой:
        https://gist.github.com/partizanes/3706ac7ea99b5a2384fb15ceb9127f15
        Ответить
    • > float.Parse(arr[3].Replace('.',','))
      wtf? float.Parse не распознает точку в качестве разделителя? О_о
      Ответить
      • Все еще хуже.
        '.' 
        A culture-specific decimal point symbol.

        "Не знаю, у меня все работает"
        This version of Parse uses <...> culture-specific NumberFormatInfo data associated with the current thread.

        В данном случае, как я понимаю, правильно так:
        float.Parse(arr[3], CultureInfo.InvariantCulture)
        Ответить
        • и тут мы приходим к интересному вопросу: а не говно-ли сериализоваывать данные в соответствии с чьей-то там культурой?
          Ответить
          • Я считаю, что таки говно, коллега!
            Ответить
          • Говно. Подгон под культуру должен осуществляться как часть вьюшки
            Ответить

    Добавить комментарий