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

    +958

    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
    namespace sortFiles
    {
        public partial class Form1 : Form
        {
            private void listBox1_DragDrop(object sender, DragEventArgs e)
            {
                this.listBox1.Items.AddRange((string[])e.Data.GetData(DataFormats.FileDrop, false));
            }
    
            private void listBox1_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None);
            }
    
            private void listBox1_MouseDown(object sender, MouseEventArgs e)
            {
                var files = new List<OrderByMyCamera>();
                foreach (string i in listBox1.Items)
                    files.Add(new OrderByMyCamera(i));
                if(files.Count==0)
                    return;
                files.Sort();
                var filesArray = files.Select(item=>item.ToString()).ToArray();
                DoDragDrop(new DataObject(DataFormats.FileDrop, filesArray), DragDropEffects.Copy);
            }
        }
    
        internal class OrderByMyCamera : IComparable<OrderByMyCamera>
        {
            private readonly string _filePath;
            private readonly int _fileNumber;
    
            public OrderByMyCamera(string filePath)
            {
                _filePath = filePath;
                var fileName = Path.GetFileNameWithoutExtension(filePath);
                if(fileName.Count()!=6)
                    throw new Exception("Имя файла должно быть 6+4 символов вида MOVXXX.mpg. Возможно вы попытались вставить не те файлы в программу");
                if (!filePath.Trim().ToLower().EndsWith(".mpg"))
                    throw new Exception("Файлы должны заканчиваться на расширение .mpg. Сконвертируете файлы в mpeg, прежде чем вставите их в программу");
                int fileNumber = int.Parse(fileName.Substring(3), NumberStyles.HexNumber);
                _fileNumber = fileNumber;
            }
    
           public override string ToString()
            {
                return _filePath;
            }
    
            public int CompareTo(OrderByMyCamera other)
            {
                if (_fileNumber == other._fileNumber)
                    return 0;
                return (_fileNumber > other._fileNumber ? 1 : -1);
            }
        }
    }

    Запостил: Говногость, 24 Июля 2011

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

    • > 6+4 символов вида MOVXXX.mpg
      Ответить
    • > if(files.Count==0)
      А если найду?
      Ответить
    • Что делает код?
      Ответить
      • "sortFiles" вам о чем-нибудь говорит?
        Ответить
        • По мне, так это какая-то непонятная хуита.
          Ответить
          • Bydlo cannot into sortFiles
            Ответить
            • не понимаю, как это работает. Вроде это полная программа, но она ведь ничего не делает.
              Ответить
    • "Файлы должны заканчиваться на расширение .mpg. Сконвертируете файлы в mpeg, прежде чем вставите их в программу"
      искромётно, кстати
      Ответить
      • > должны заканчиваться на расширение
        а так же наполняться видео

        > Сконвертируете файлы в mpeg
        нет, вы их сконвертируете, причём немедленно! по два раза повторять не буду!

        > чем вставите их в программу
        засунете себе в программу, да поглубже
        Ответить
    • чем же ему сортировка в проводнике не угодила...
      Ответить
      • наверное потому что у него был только полупроводник
        Ответить
      • Например, потому что согласно
        >int.Parse(fileName.Substring(3), NumberStyles.HexNumber);
        XXX - это шестнадцатеричный код, тогда проводник отсортировать правильно файлы не сможет, ибо он сортирует в лексикографическом порядке.
        >OrderByMyCamera
        Так что это говнокод создателей камеры этого чела, если приходиться так извращаться, что-бы отсортировать файлы, а не делать это вручную.
        Ответить
    • Втаскиваем файлы в программу из проводника драгэнддропом и она их сортирует, затем вытаскиваем их в программу работы с видео в правильном отсортированном порядке. Вот, что делает данная прога.
      Ответить
    • показать все, что скрытоvanished
      Ответить

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